Al reutilizar código, una solución inmediata sería seleccionar el bloque de código a ejecutar en cuestión para copiarlo y pegarlo en otra sección de código para ser ejecutado, si bien el problema es resuelto, no es considerado como buena práctica, debido a que, si se trata de un código de gran escala, su legibilidad y mantenimiento puede ser obstaculizado.
Una solución versátil es el uso de funciones.
Una función es un bloque de código que puede ser mandado a llamar las veces que se desee, con la diferencia que éste bloque en particular es llamado a través de su nombre y no a través de cada uno de los comandos que llegase a utilizar, dando como resultado mayor legibilidad y semántica.
Las funciones tienen las siguientes características:
En la siguientes imágenes se muestra la sintaxis y uso de las funciones en Bash.
#!/bin/bash
#Definición de una función de saludo
nombreFuncion(){
#argumentos
#instrucciones
}
Ejemplo 1. Sintaxis de funcion en bash
Es importante destacar los siguientes puntos:
Las funciones pueden alimentarse de valores externos, los cuales son denominados parámetros o argumentos.
La línea de argumentos es aquella que se encarga de almacenar los valores pasados a la función en cuestión, para después ser utilizados en la línea de instrucciones.
Toda función puede alimentarse con varios argumentos.
En la línea de instrucciones podemos hacer que la función procese la información tanto de los argumentos como de forma local.
Podemos o no retornar un valor, dependiendo de la necesidad del script.
#!/bin/bash
#Definición de una función de saludo
saludar(){
local nombre=$1
echo "¡Hola, $nombre!"
}
#Llamada a la función
saludar "Juan"
Ejemplo 1. Declaración y uso de función sin retorno ni argumentos
#!/bin/bash
#Definición de una función que retorna un valor
funcion_con_retorno(){
local resultado=$(( $1 + $2 ))
echo $resultado
}
#Llamada a la función y captura del valor retornado
resultado=$(funcion_con_retorno 5 3)
#Imprimir el resultado capturado
echo "El resultado es: $resultado"
Ejemplo 2. Uso de función con retorno y dos argumentos
Cuando se programa un script, es muy útil mostrar cadenas de salida para que se muestre la información que se desea visualizar. Esto sirve para dar seguimiento a la ejecución del script.
Algunas veces será importante mantener consistencia de información. Mayor parte de ella consiste precisamente en ser una combinación de símbolos y números, por ende, podemos almacenarla en cadenas para su posterior uso.
También podemos almacenar en cadenas los nombres de un comando en particular, los cuales pueden ser utilizados por otro script.
En resumen, las funciones permiten modular código desarrollado para un programa en cualquier lenguaje, esto, con el fin de mejorar su semántica, mantenimiento, legibilidad y reutilización.