Ah le Bash ! Ce vrai et beau langage qui continue son exécution même après qu'une erreur s'est produite.
Dans leur grande sagesse, les développeurs ont eu la bonne idée d'y associer un mode de débuggage, qui permet d'afficher la valeur des variables.
Quand on en a marre de débugger un script à coup de echo
toutes les deux lignes, cela s'avère pratique.
Pour l'activer :
1) On peut lancer tout le script en mode débug :
bash -x monScript.sh
2) On peut également intégrer l'option directement au niveau du shebang :
#!/usr/bin/env bash -x
3) On peut enfin ne placer qu'une partie du script en mode débug. Il suffit d'activer le mode avant le code suspect, et de le désactiver ensuite :
#!/usr/bin/env
# Le code qui ne pose pas de problème
...
# Activation du mode debug
set -x
# Le code foireux
...
# Désactivation du mode debug
set +x
# Code exécuté après
Il y a quelques autres options, mais en gros c'est l'idée.