Un script Bash écrit à la va-vite fonctionne… jusqu’au jour où une variable vide efface un mauvais dossier. Écrire du Bash robuste tient à quelques réflexes qui transforment un script fragile en outil fiable.
Le préambule qui sauve
La première ligne utile d’un script sérieux, après le shebang, c’est set -euo pipefail.
- -e — arrête le script à la première commande qui échoue.
- -u — erreur si une variable non définie est utilisée.
- -o pipefail — un pipe échoue si l’une de ses étapes échoue.
Citez vos variables
La règle la plus importante : toujours entre guillemets — "$var", "$@", "${array[@]}". Un chemin contenant une espace, ou une variable vide sans guillemets, et le comportement devient imprévisible — parfois destructeur.
Aller plus loin
Un trap 'cleanup' EXIT garantit le nettoyage même en cas d’interruption. shellcheck, un linter statique, détecte les erreurs classiques avant l’exécution. Et quand la logique devient complexe, mieux vaut passer à Python plutôt que de tordre Bash.
À retenir
set -euo pipefail, des guillemets partout, shellcheck en garde-fou : trois habitudes, et vos scripts cessent de vous trahir au pire moment.
