Arrêter l'exécution d'un script Bash en cas d'erreur

Publié le 20/09/2024  Bash

Dans un script, si une commande renvoie une valeur différente de 0, c'est qu'il y a eu une erreur.
Il est possible d'arrêter le déroulement du script dans ce cas en mettant en tête
>
set -eu

On peut aussi essayer
>
set -Eeuo pipefail
qui va s'arrêter si un pipe est en défaut

Si une commande peut avoir le code de retour différent de 0, il faut le capturer pour ne pas arrêter le script en ajoutant && :
>
diff -q /tmp/file /usr/sbin/file > /dev/null && :

if [ $? == 0 ]; then
  echo "No diff"
fi

Source https://stackoverflow.com/a/27793459/158716