objectif
Activer un mode bash sûr qui arrête le script en cas d’erreur et évite les comportements ambigus.
code minimal
#!/usr/bin/env bash
set -Eeuo pipefail
IFS=$'\n\t'
trap 'echo "erreur: ligne=$LINENO cmd=\"$BASH_COMMAND\"" >&2' ERR
utilisation
# placez ces lignes en tête de vos scripts .sh
bash ./mon_script.sh
variante(s) utile(s)
# traçage des commandes pour le debug
set -x
# hériter de -e dans les substitutions de commande (bash ≥ 4.4)
shopt -s inherit_errexit
# handler d'erreur plus détaillé et nettoyage
on_error() {
local code=$?
local line=${BASH_LINENO[0]:-}
echo "échec: code=$code ligne=$line cmd=\"$BASH_COMMAND\"" >&2
}
cleanup() { :; }
trap on_error ERR
trap cleanup EXIT
notes
-estoppe à la première erreur,-urefuse les variables non définies,pipefailpropage l’échec d’un pipe.- réglez
IFSpour éviter les splits dangereux sur espaces. - utilisez
read -rpour ne pas interpréter les backslashes. inherit_errexitrend les échecs plus visibles dans les sous-commandes.