Bash: funciones
Aunque los scripts en Bash suelen ser pequeños y para hacer cosas puntuales pero muchas veces viene bien tener funciones para evitar repetir código y hacer buenos scripts. Se pueden definir de la siguientes formas (independientemente de si se van a pasar o no parámetros.:
- function function_name {
command…
} - function function_name () {
command…
} - function function_name ()
{
command…
}
Para invocar a una función simplemente se ha de usar su nombre (sin los paréntesis) y en caso de que queramos pasar parámetros uno detrás de otro separados por espacios.
#!/bin/bash
fun () {
if [ "$1" ] # Is parameter #1 zero length?
then
echo "Parametro #1 es \"$1\".-"
fi
return 0
}
echo "sin parametros."
fun
echo
echo "1 parametro."
fun uno
echo
Dentro de la definición de la función podemos usar los siguientes comandos:
- swift
lo que hace es eliminar el primer parámetro y trasladar el segundo al primero y así sucesivamente. - return valor
Termina la función y devuelve un valor. - exit valor
Termina el script con un código de error como valor.
Las variables por defecto son globales por lo que si queremos que una variable sea local tenemos que definirla como local dentro de la función:
func ()
{
var1=2 # cambia el valor de una variable globalmente
local var2=23 # define una variable local
}

