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:

Safer bash scripts with set -euxo pipefail