4623 shaares
397 liens privés
397 liens privés
Let's start with the punchline. Your bash scripts will be more robust, reliable and maintainable if you start them like this:
#!/bin/bash set -euo pipefail IFS=$'\n\t'
I call this the unofficial bash strict mode. This causes bash to behave in a way that makes many classes of subtle bugs impossible. You'll spend much less time debugging, and also avoid having unexpected complications in production.
Un excellent billet de blog qui explique comment faire des scripts bash qui utilisent le mode "strict": c'est à dire qui crashent à la moindre erreur.
Ne surtout pas manquer la partie "problèmes et solutions" http://redsymbol.net/articles/unofficial-bash-strict-mode/#issues-and-solutions dont il est notamment question de :
- Comment faire exécuter des commandes dont on sait qu'elles sortent avec un code de sortie ≠ 0
- Eviter les variables non définies, et pour cela utiliser des valeurs par défaut: http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion
- Opérations de nettoyage avec les
Exit Traps
dont j'ai déja parlé ici https://jeekajoo.eu/links/?_kUIBg