Suche…
Bash-Skript mit "-x" debuggen
Verwenden Sie "-x", um die Debug-Ausgabe von ausgeführten Zeilen zu aktivieren. Es kann für eine gesamte Sitzung oder ein Skript ausgeführt oder innerhalb eines Skripts programmgesteuert aktiviert werden.
Führen Sie ein Skript mit aktivierter Debug-Ausgabe aus:
$ bash -x myscript.sh
Oder
$ bash --debug myscript.sh
Aktivieren Sie das Debuggen innerhalb eines Bash-Skripts. Es kann optional wieder aktiviert werden, die Debug-Ausgabe wird jedoch automatisch zurückgesetzt, wenn das Skript beendet wird.
#!/bin/bash
set -x # Enable debugging
# some code here
set +x # Disable debugging output.
Überprüfen der Syntax eines Skripts mit "-n"
Mit dem Flag -n können Sie die Syntax eines Skripts überprüfen, ohne es ausführen zu müssen:
~> $ bash -n testscript.sh
testscript.sh: line 128: unexpected EOF while looking for matching `"'
testscript.sh: line 130: syntax error: unexpected end of file
Debuggen von usigh bashdb
Bashdb ist ein Dienstprogramm, das gdb ähnlich ist, dh Sie können Haltepunkte an einer Zeile oder an einer Funktion setzen, den Inhalt von Variablen drucken, die Skriptausführung erneut starten und vieles mehr.
Sie können es normalerweise über Ihren Paketmanager installieren, zum Beispiel bei Fedora:
sudo dnf install bashdb
Oder holen Sie es von der Homepage . Dann können Sie es mit Ihrem Skript als Parameter ausführen:
bashdb <YOUR SCRIPT>
Hier sind ein paar Befehle, um den Einstieg zu erleichtern:
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
Weitere Informationen finden Sie im Handbuch: http://www.rodericksmith.plus.com/outlines/manuals/bashdbOutline.html
Siehe auch Homepage:
http://bashdb.sourceforge.net/