Funciones

( desarrollo / bash )

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.

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:

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
}
Modificado el 21 de diciembre de 2009
Creado el 18 de diciembre de 2009
   

Compartiendo conocimiento desde 1995 - I.M.D. I.M.D.