Bash
Le débogage
Recherche…
Déboguer un script bash avec "-x"
Utilisez "-x" pour activer la sortie de débogage des lignes exécutées. Il peut être exécuté sur une session ou un script entier ou activé par programmation dans un script.
Exécutez un script avec la sortie de débogage activée:
$ bash -x myscript.sh
Ou
$ bash --debug myscript.sh
Activez le débogage dans un script bash. Il peut éventuellement être réactivé, bien que la sortie de débogage soit automatiquement réinitialisée à la fermeture du script.
#!/bin/bash
set -x # Enable debugging
# some code here
set +x # Disable debugging output.
Vérification de la syntaxe d'un script avec "-n"
L'option -n vous permet de vérifier la syntaxe d'un script sans avoir à l'exécuter:
~> $ bash -n testscript.sh
testscript.sh: line 128: unexpected EOF while looking for matching `"'
testscript.sh: line 130: syntax error: unexpected end of file
Déboguer usigh bashdb
Bashdb est un utilitaire similaire à gdb, dans la mesure où vous pouvez définir des points d'arrêt sur une ligne ou sur une fonction, imprimer du contenu de variables, relancer l'exécution du script, etc.
Vous pouvez normalement l'installer via votre gestionnaire de paquets, par exemple sur Fedora:
sudo dnf install bashdb
Ou l'obtenir de la page d'accueil . Ensuite, vous pouvez l'exécuter avec votre script en tant que paramètre:
bashdb <YOUR SCRIPT>
Voici quelques commandes pour vous aider à démarrer:
l - show local lines, press l again to scroll down
s - step to next line
print $VAR - echo out content of variable
restart - reruns bashscript, it re-loads it prior to execution.
eval - evaluate some custom command, ex: eval echo hi
b <line num> set breakpoint on some line
c - continue till some breakpoint
i b - info on break points
d <line #> - delete breakpoint at line #
shell - launch a sub-shell in the middle of execution, this is handy for manipulating variables
Pour plus d'informations, je vous recommande de consulter le manuel: http://www.rodericksmith.plus.com/outlines/manuals/bashdbOutline.html
Voir aussi la page d'accueil:
http://bashdb.sourceforge.net/