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 Linux Command Line & Bash Scripting Mastery 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 Linux Command Line & Bash Scripting Mastery, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Linux Command Line & Bash Scripting Mastery 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 Linux Command Line & Bash Scripting Mastery, actualiza a CoddyKit PRO. El curso de Linux Command Line & Bash Scripting Mastery 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 Linux Command Line & Bash Scripting Mastery 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 Linux Command Line & Bash Scripting Mastery?
No se requiere experiencia previa. Linux Command Line & Bash Scripting Mastery 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 Linux Command Line & Bash Scripting Mastery?
Sí. Cada lección de Linux Command Line & Bash Scripting Mastery 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