Bash sin sorpresas
Existe una línea de código que agrego siempre a los script bash que me ayuda mucho a evitar errores comunes cuando se escribe un script.
#!/bin/bash
set -euxo pipefail
La tercera línea en este ejemplo sirve para indicar al interprete lo siguiente:
set -e Le dice a bash que termine inmediatamente si algun comando falla
set -o pipefail Bash normalmente revisa el último código de salida cuando se ejecuta en pipes. Con este cambio el comportamiento hace que si un comando falla en un pipeline todo el pipeline falle.
set -u Esta opción hace que el interprete emita un error y salga si una variable no esta definida.
set -x Esta es mi favorita porque permite imprimir en la consola cada comando antes de ejecutar. Los argumentos son expandidos.
Si desean ver ejemplos de cómo funciona por favor revisar: