Funciones de shell y fragmentos reutilizables
Defina y utilice funciones de Bash para empaquetar comandos en bloques reutilizables y parametrizados para su shell.
Funciones de shell y fragmentos reutilizables es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Por qué usar funciones del shell?
Una función del shell agrupa varios comandos bajo un único nombre para que pueda reutilizarlos sin volver a escribirlos.
- Más rápidas que copiar y pegar comandos
- Más claras que los alias largos
- Pueden aceptar argumentos, a diferencia de los alias
mkcd() {
mkdir -p "$1" && cd "$1"
}Definir una función
La forma más sencilla utiliza la sintaxis name() { ... }. Los comandos entre las llaves se ejecutan cuando se llama a la función por su nombre.
greet() {
echo "Hello from a function"
}
greetArgumentos de funciones
Las funciones reciben parámetros posicionales igual que los scripts: $1, $2. $# es el recuento y $@ se expande a todos los argumentos.
backup() {
cp "$1" "$1.bak"
echo "Backed up $1"
}
backup notes.txtValores devueltos y estado de salida
Las funciones devuelven un estado de salida mediante return N (0-255). Úselo para comprobar el éxito o el fallo, no para devolver datos.
is_root() {
[ "$(id -u)" -eq 0 ] && return 0 || return 1
}
if is_root; then echo root; else echo normal; fiDevolver resultados mediante echo
Como return solo transporta un código de estado, los resultados reales se muestran y capturan con $( ).
timestamp() {
date +%Y%m%d-%H%M%S
}
name="log-$(timestamp).txt"
echo "$name"Variables locales
De forma predeterminada, las variables dentro de las funciones son globales. Use local para limitar una variable a la función y evitar contaminar el shell.
count_lines() {
local n
n=$(wc -l < "$1")
echo "$1 has $n lines"
}Valores de argumentos predeterminados
Use la expansión de parámetros ${1:-default} para recurrir a un valor predeterminado cuando falte un argumento.
say() {
local msg="${1:-Hello World}"
echo "$msg"
}
say
say "Custom message"Funciones frente a alias
Los alias simplemente sustituyen texto y no pueden recibir argumentos posicionales de forma adecuada. Las funciones pueden ramificar, iterar y procesar datos de entrada.
- Utilice un alias para un atajo fijo
- Utilice una función cuando necesite lógica o argumentos
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }Hacer que las funciones sean persistentes
Las funciones definidas en el indicador desaparecen cuando se cierra el shell. Añádalas a ~/.bashrc para que estén disponibles en todas las sesiones.
# Append to ~/.bashrc
extract() {
case "$1" in
*.tar.gz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*) echo "Unknown format" ;;
esac
}Enumerar y eliminar funciones
declare -F enumera los nombres de las funciones; declare -f name muestra el cuerpo. Elimine una función con unset -f name.
declare -F
declare -f greet
unset -f greetComponer funciones
Las funciones pueden llamar a otras funciones, lo que permite combinar pequeños componentes reutilizables para crear herramientas más grandes.
log() { echo "[$(date +%T)] $*"; }
deploy() {
log "Starting deploy"
log "Done"
}
deployComprobación rápida
Compruebe sus conocimientos sobre las funciones del shell.
Resumen
Ha aprendido a crear funciones reutilizables del shell:
- Defínalas con
name() { ... }y llámelas por su nombre - Utilice
$1,$@y$#para los argumentos, yreturnpara el estado - Delimite el ámbito de las variables con
localy devuelva datos medianteecho - Hágalas persistentes en
~/.bashrce inspecciónelas condeclare -f
Preguntas frecuentes
¿La lección «Funciones de shell y fragmentos reutilizables» es gratis?
Sí — el texto completo de «Funciones de shell y fragmentos reutilizables» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «Funciones de shell y fragmentos reutilizables»?
Defina y utilice funciones de Bash para empaquetar comandos en bloques reutilizables y parametrizados para su shell. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Funciones de shell y fragmentos reutilizables»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Control de trabajos (bg, fg, jobs)
- Expansión del shell y globbing
- Alias y prompts personalizados
- Funciones de shell y fragmentos reutilizables