CodeAventura
Linux
▸Scripts de Shell▸Funciones en shell

Misión

# Define y usa la función saludar

TerminalTema: Vintage
16 / 16Funciones en shell
Anterior

Funciones en shell

Organizar tu código

Cuando tus scripts crecen, repetir el mismo bloque de código en varios sitios es un problema. Si necesitas cambiar algo, tienes que cambiarlo en todos los sitios. Las funciones resuelven esto: defines el código una vez y lo llamas cuantas veces quieras.

Definir una función

La sintaxis es: nombre de la función, paréntesis vacíos, y el cuerpo entre llaves { }. Los paréntesis siempre van vacíos — los argumentos se pasan de otra forma.

Llamar a una función

Una vez definida, la llamas por su nombre:

Cada llamada ejecuta el código de la función. Es como tener un comando personalizado.

Argumentos en funciones

Dentro de una función, los argumentos funcionan igual que en los scripts:

  • $1 — primer argumento de la función
  • $2 — segundo argumento
  • $@ — todos los argumentos
  • $# — número de argumentos

Variables locales

Por defecto, las variables en shell son globales — visibles en todo el script. Para que una variable solo exista dentro de una función, usa local:

Sin local, la variable resultado seguiría existiendo después de llamar a la función. Con local, solo existe dentro de ella.

Buenas prácticas

  • Una función, una tarea: cada función debe hacer una sola cosa bien
  • Nombres descriptivos: crear_backup es mejor que func1
  • Usa local: evita que las variables de una función afecten al resto del script
  • Documenta con comentarios: qué hace la función y qué argumentos espera

Ejemplo práctico

Un script que organiza archivos por tipo:

Funciones pequeñas, reutilizables, con nombres claros.

Tu desafío

Crea un script funciones.sh con:

  1. Una función saludar que reciba un nombre y lo salude con echo "Hola, [nombre]!"
  2. Llama a la función tres veces con nombres diferentes

Escríbelo en el editor y ejecútalo con sh funciones.sh.