Améliorez la fiabilité de vos scripts et gérez les erreurs proprement.
objectifs d’apprentissage
- Activer garde-fous.
- Utiliser traps.
- Structurer en fonctions.
prérequis
- Bases du shell.
- Éditeur.
notions clés
- set -euo pipefail.
- trap EXIT/ERR.
- IFS sécurisé.
démonstration guidée
étape 1
Script minimal robuste.
cat > robust.sh << 'EOF'
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
cleanup(){ echo 'bye'; }
trap cleanup EXIT
echo 'ok'
EOF
chmod +x robust.sh && ./robust.sh
étape 2
Gestion d’erreur avec trap ERR.
cat > fail.sh << 'EOF'
#!/usr/bin/env bash
set -euo pipefail
trap 'echo "erreur sur la ligne $LINENO"' ERR
false
EOF
bash fail.sh || true
exercice
Ajoutez un timeout à une commande via ‘timeout 5s …’ et gérez l’échec.
correction
Exemple avec timeout.
timeout 2s sleep 5 || echo 'commande interrompue'
quiz éclair
- Quelle option bash arrête le script si une variable est non définie ?
- a) set -u
- b) set -e
- c) set -o pipefail