Posts del SysAdminScripts

Uso de shell scripts: incluir instrucciones y documentación

Cuando hablamos de consideraciones a tener en cuenta al escribir shell scripts uno de los puntos era proveer documentación. Este recurso puede resultar sumamente útil cuando otra persona los ejecute. El uso de shell scripts con los tips que compartiremos en este post hará que los mismos sean más fáciles de utilizar.

Uso de shell scripts: incluir instrucciones

En su momento hablamos de lo útil que resulta el emplear los man pages, la herramienta info, y la opción --help. Nuestros scripts, como cualquier otro programa, puede algo similar para ilustrar la forma correcta de uso. Tomaremos como ejemplo el script que desarrollamos en nuestro post anterior, agregando contenido al principio. Nuevamente, les invito a tratar de identificar las líneas que hemos añadido:

#!/bin/bash

# Instrucciones de uso
INST_USO="$(basename "$0") a b -- Este programa muestra el o los archivos dentro de un directorio donde se localiza un patrón de búsqueda ingresado.
\n
Donde:\n
        a representa el patrón de búsqueda. El mismo debe ser el primer argumento.\n
        b representa el directorio donde se realizará la búsqueda. El mismo debe ser el segundo argumento."

# Si no se ingresan los dos argumentos necesarios, interrumpir la ejecución:
if [ $# -ne 2 ]; then
    echo -e $INST_USO
    exit 1
else
    # Patrón de búsqueda
    PATRON=$1

    # Directorio en donde buscar
    DIRECTORIO=$2

    # Búsqueda
    grep -irq $PATRON $DIRECTORIO/*

    if [ $? -eq 0 ]; then
        LUGAR=$(grep -irl $PATRON $DIRECTORIO/*)
        echo "El patrón $PATRON fue localizado en $LUGAR."
    else
        echo "No se encontró el patrón $PATRON en los archivos presentes dentro de $DIRECTORIO."
    fi
fi

Veamos algunos puntos importantes:

  • Si el script recibe una cantidad de argumentos diferente a dos, se interrumpirá su ejecución. A continuación se mostrará un mensaje explicando el uso correcto del mismo.
  • El uso de la opción -e del comando echo permite que \n se interprete como un salto de línea.

En la Fig. 1 podemos ver dos ejecuciones del script (una correcta y otra no) junto con su código de salida (0 en el primero y 1 en el siguiente):

Uso de shell scripts: agregar instrucciones de uso
Figura 1 – Uso de shell scripts: agregar instrucciones de uso

Espero que este post les haya resultado de utilidad. ¡Nos leemos en breve!

Deja una respuesta

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