Retour au cours

bash avance: scripts robustes

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

  1. Quelle option bash arrête le script si une variable est non définie ?
  • a) set -u
  • b) set -e
  • c) set -o pipefail

ressources