7. Funciones en Bash
Introducción a las Funciones
- Descripción: Una función es un bloque de código que se puede reutilizar en un script. Permite organizar y estructurar mejor el código, evitando la repetición y facilitando el mantenimiento.
- Definición de funciones:
- Sintaxis:
nombre_de_la_función() {
# comandos
} - Ejemplo básico:
decir_hola() {
echo "¡Hola, Mundo!"
}
decir_hola # Llamada a la función
- Sintaxis:
Parámetros en Funciones
- Descripción: Las funciones pueden aceptar parámetros, que se pasan al momento de llamar la función.
- Acceso a parámetros:
$1
,$2
,$3
, etc.: Representan el primer, segundo, tercer parámetro, respectivamente.$@
: Todos los parámetros.$#
: Número de parámetros.- Ejemplo:
saludar() {
echo "Hola, $1"
}
saludar "Rafa" # Llamada a la función con un parámetro
Retorno de Valores
- Descripción: Las funciones pueden devolver valores usando el comando
return
. - Sintaxis:
return
: Devuelve un valor de estado (0 indica éxito, otros valores indican error).- Ejemplo:
suma() {
resultado=$(( $1 + $2 ))
return $resultado
}
suma 3 4
echo "La suma es $?" # Imprime el valor devuelto por la función
Ámbito de las Variables
- Descripción: Las variables definidas dentro de una función son locales a esa función a menos que se declare lo contrario.
- Local vs Global:
local
: Declara una variable local dentro de una función.- Ejemplo:
ejemplo() {
local var_local="Soy local"
var_global="Soy global"
}
ejemplo
echo $var_global # Imprime "Soy global"
echo $var_local # No imprime nada, ya que var_local es local a la función
Funciones Recursivas
- Descripción: Una función que se llama a sí misma para resolver un problema en varias etapas.
- Ejemplo:
factorial() {
if [ $1 -le 1 ]; then
echo 1
else
echo $(( $1 * $(factorial $(( $1 - 1 )) ) ))
fi
}
resultado=$(factorial 5)
echo "El factorial de 5 es $resultado"