Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| dev:bash:debogage [2021/02/01 21:51] – modification externe 127.0.0.1 | dev:bash:debogage [2022/11/23 13:48] (Version actuelle) – yoann | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| ====== Débogage de scripts shell ====== | ====== Débogage de scripts shell ====== | ||
| - | Le shell bash peut être invoqué avec l' | + | Avant toute exécution, on peut vouloir valider la syntaxe d'un fichier de script. Pour cela on peut invoquer un shell avec l' |
| + | |||
| + | < | ||
| + | bash -n monscript.sh | ||
| + | </ | ||
| + | |||
| + | Le shell Bash peut être invoqué avec l' | ||
| + | |||
| + | Dans l' | ||
| <code bash> | <code bash> | ||
| #!/bin/bash -x | #!/bin/bash -x | ||
| # Les commandes présentes dans ce script sont affichées | # Les commandes présentes dans ce script sont affichées | ||
| + | # Le shell est invoqué avec l' | ||
| </ | </ | ||
| - | A tout moment dans un script on peut activer désactiver l' | + | A tout moment dans un script on peut activer/désactiver l' |
| <code bash> | <code bash> | ||
| - | # activer | + | # Activer |
| set -x | set -x | ||
| + | |||
| + | # équivalent | ||
| + | set -o xtrace | ||
| # désactiver l' | # désactiver l' | ||
| set +x | set +x | ||
| + | |||
| + | # équivalent | ||
| + | set +o xtrace | ||
| </ | </ | ||
| + | |||
| + | Ci-dessous quelques options couramment utilisées pour le développement et le débogage: | ||
| + | |||
| + | ^ Notation courte ^ Notation longue ^ Résultat | ||
| + | | set -e | set -o errexit | ||
| + | | set -f | set -o noglob | ||
| + | | set -v | set -o verbose | ||
| + | | set -x | set -o xtrace | ||
| + | | set -u | set -o nounset | ||
| + | | set -n | set -o noexec | ||
| + | |||
| + | |||
| + | Pour afficher les options activées par les arguments positionnels: | ||
| + | <code bash> | ||
| + | echo $- | ||
| + | </ | ||
| + | |||
| + | ===== bashdb ===== | ||
| + | |||
| + | Il existe un débogueur dont la syntaxe est proche de gdb: **bashdb**. Il s' | ||
| + | |||
| + | < | ||
| + | Sur les versions récentes d' | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Références ===== | ||
| + | |||
| + | https:// | ||