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:// |