0Pricing
DevOps Bootcamp · Lección

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"
}
greet

Argumentos 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.txt

Valores 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; fi

Devolver 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 greet

Componer 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"
}
deploy

Comprobació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, y return para el estado
  • Delimite el ámbito de las variables con local y devuelva datos mediante echo
  • Hágalas persistentes en ~/.bashrc e inspecciónelas con declare -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

  1. Control de trabajos (bg, fg, jobs)
  2. Expansión del shell y globbing
  3. Alias y prompts personalizados
  4. Funciones de shell y fragmentos reutilizables
← Volver a DevOps Bootcamp