educatica!

educación, informática y demás

Funciones

Una función en un shell script nos permite darle un identificador a un conjunto de comandos que podemos invocar o ejecutar en cualquier parte del script escribiendo tan solo su nombre.

Las funciones deben tener un identificador único, que las identifica, y permite invocarlas o llamarlas. También deben tener un cuerpo de función, que es el conjunto de comandos que se ejecutará cuando se invoque.

Las funciones pueden recibir valores por parámetro y utilizarlos igual que hacemos con los scripts.

La forma más sencilla de entender una función es pensar en ellas como en un pequeño shell script dentro del shell script.

Una vez escrita la función, para ejecutarla basta con que escribamos su identificador en cualquier parte del script, como hacemos con el script una vez preparado con permiso de ejecución.

Para pasarle parámetros, bastará con escribirlos detrás del identificador de la función, separándolos con espacios, igual que hacemos al pasar parámetros a un shell script o a un comando. Para usar parámetros dentro de una función podemos usar las variables especiales de parámetro. En el ámbito de la función hacen referencia al parámetro pasado a la función, no al script. Por tanto podemos utilizar $1 a $9 si necesitamos consultar los parámetros de una función.

Por último, al igual que un script, una función puede retornar un valor de retorno o salida. En este caso, la diferencia es que en la función se ejecuta el comando return seguido de un valor numérico y en los scripts usamos el comando exit seguido de un valor numérico.

¿Cuándo usamos una función?

Cuando queramos reutilizar un bloque de comandos dentro de nuestro script o queramos dotar de legibilidad en un script de cierto tamaño o complejidad.

Ejemplo 01 – Funciones

Fichero: funciones01.sh

Ejemplo 02 – Funciones

Fichero: funciones02.sh

Ejemplo 03 – Funciones

Fichero: funciones03.sh

Ejemplo 04 – Funciones

Fichero: funciones04.sh

Ejemplo 05 – Funciones

Fichero: funciones05.sh

Ejemplo 06 – Funciones

Fichero: funciones06.sh
Fichero: funciones-utils.sh

Tema creado por Anders Norén