Posts del SysAdminScripts

Funciones en shell scripts: cómo reutilizar código y evitar errores

Cuando se necesita realizar una acción en repetidas ocasiones dentro de un script, lo más conveniente es utilizar una función. El concepto es el mismo que en los lenguajes de programación tradicionales. En palabras simples, una función es un conjunto de instrucciones a llevarse a cabo. En nuestro caso, dichas instrucciones consisten en comandos que se ejecutarán de manera secuencial al invocar la función. El utilizar funciones en shell scripts nos permite reutilizar el código cuando lo necesitemos y de modificarlo en un solo lugar si se desea hacer algún cambio.

Funciones en shell scripts

Para empezar, veamos cómo declarar una función en un script. Cualquiera de las dos alternativas mostradas a continuación son válidas para declarar la función Ahora:

function() Ahora{
comando1
comando2
}

o

Ahora() {
comando1
comando2
}

En este ejemplo, comando1 y comando2 representan dos comandos cualesquiera, aunque podemos utilizar cuantos deseemos.

Ejemplo

Aunque el siguiente ejemplo es un tanto trivial, servirá para ilustrar el uso de funciones en shell scripts. Supongamos que tenemos un script que realiza ciertas tareas y al terminar cada una guarda en un archivo de texto o muestra por pantalla la hora de finalización. El siguiente script (ejemplofuncion.sh) comienza con la declaración de la función Ahora. Esta función, al ser invocada con un argumento (como veremos más abajo), hará una pausa de 5 segundos y mostrará la fecha y hora actuales por pantalla 3 veces:

#!/bin/bash

# Declaramos la funcion
Ahora() {
    FECHA_HORA=$(date +'%d-%m-%Y %H:%M:%S')
    sleep 5
    echo "Tarea $1 completa - $FECHA_HORA"
}

# Primera tarea: desayuno
Ahora desayuno

# Segunda tarea
Ahora almuerzo

# Tercera tarea
Ahora cena

Veamos en la Fig. 1 el resultado de la ejecución del script:

Funciones en shell scripts
Figura 1 – Funciones en shell scripts

Como vemos, al mostrar el mensaje en cada caso estamos reutilizando la función Ahora. En la primera llamada el único argumento es la palabra desayuno. El mismo toma el lugar de $1 cuando la función es ejecutada. Lo mismo aplica para las siguientes llamadas con respecto a almuerzo y cena.

Espero que este post les haya resultado de utilidad. En el próximo abordaremos un ejemplo más práctico y útil sobre el uso de funciones en shell scripts. ¡No se lo pierdan!

Un comentario en “Funciones en shell scripts: cómo reutilizar código y evitar errores

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *