Shell scripts en Linux: consideraciones de desarrollo

Por si no leyeron todavía la introducción sobre shell scripts en Linux, les recomiendo hacerlo. En este post nos dedicaremos a señalar algunas consideraciones de desarrollo sobre los mismos.

Shell scripts en Linux
Shell scripts en Linux

Shell scripts en Linux

Según el libro Bash Guide for Beginners de Machtelt Garrels, un buen script debe cumplir las siguientes cinco condiciones:

Condición 1: Ejecutarse sin errores

A menudo resulta útil colocar

set -x

al comienzo de un script (en la línea debajo del shebang #!/bin/bash). Luego, al ejecutarlo, veremos los pasos que sigue su ejecución. Si existe algún error durante la ejecución, será más fácil de identificar de esta manera.

Condición 2: Cumplir la tarea para la cual fue escrito

Si bien esta condición es obvia, es importante preguntarse: ¿Este script resuelve el problema o la necesidad que originó su desarrollo? (Devolver datos por pantalla, ejecutar una serie de tareas de manera periódica mediante cron, etc). Si la respuesta es no, habrá que revisar el código y modificarlo según sea necesario.

Condición 3: La lógica utilizada debe estar bien definida y ser fácil de entender

Antes de comenzar a escribir el script, es una buena idea documentar el flujo que debe seguir el mismo. Para empezar, debemos hacerlo en nuestro idioma natal para luego «traducirlo» a código. De esta manera, es más fácil organizar y agilizar el desarrollo.

Condición 4: Evitar realizar tareas innecesarias

En un script corto no se notará la diferencia en rendimiento, pero en uno complejo el realizar tareas innecesarias complicará el desarrollo y la posterior lectura. Por ejemplo, es más simple y eficaz utilizar

date +%Y

que

date | tr -s " " | cut -d' ' -f6

para obtener el año actual (aunque ambos devuelvan el mismo resultado).

Condición 5: Ser fácilmente reutilizable

Hay que considerar que en el futuro necesitemos agregar opciones al script. Por eso, la medida de reusabilidad está dada por la facilidad con la que se pueden introducir modificaciones sin crear complicaciones o generar un desarrollo desde cero.

y yo agregaría una sexta:

Condición 6: Estar bien documentado

A fin de que otra persona que lea nuestro script pueda entenderlo, debemos agregar comentarios. Además, luce más profesional agregar un encabezado indicando el autor, la versión, y el historial de cambios.

Espero que estos puntos les sean útiles a la hora de comenzar y verificar sus scripts. ¡Nos leemos en breve!