Ceci est une ancienne révision du document !
Avant toute exécution, on peut vouloir valider la syntaxe d'un fichier de script. Pour cela on peut invoquer un shell avec l'option -n (noexec):
bash -n monscript.sh
Le shell Bash peut être invoqué avec l'option -x pour activer le mode trace/debug. Les commandes sont affichées sur la sortie standard avant exécution préfixées par le caractère '+';
#!/bin/bash -x # Les commandes présentes dans ce script sont affichées # Le shell est invoqué avec l'option xtrace
A tout moment dans un script on peut activer désactiver l'option via la commande interne set:
# activer l'affichage des commandes avant exécution set -x # équivalent set -o xtrace # désactiver l'affichage des commandes avant exécution set +x
Ci dessous quelques options couramment utilisées pour déboguer:
Notation courte | Notation longue | Résultat |
---|---|---|
set -f | set -o noglob | Désactive la génération des noms via les méta-caractères (globbing). |
set -v | set -o verbose | Affiche les lignes lues avant interprétation. |
set -x | set -o xtrace | Affiche la commande avant execution. |
set -u | set -o nounset | Utilisation d'une variable non définie provoque une erreur. |
set -n | set -o noexec | valider la syntaxe d'un fichier script avant de l'executer. |
Il existe un débogueur dont la syntaxe est proche de gdb: bashdb. Il s'appuie sur une option de Bash (extdebug).