Bash:
Einsatz eines Debuggers

Wie geht das:

Bash kommt nicht mit einem eingebauten Debugger wie einige andere Sprachen, aber Sie können eingebaute Befehle wie set -x verwenden, um nachzuvollziehen, was passiert. Oder, für ein Upgrade, gibt es bashdb, einen richtigen Debugger, um durch Ihren Code zu schreiten. Hier ist ein Einblick:

# Debugging mit set -x
set -x
echo "Starte Debugging"
my_var="Hallo, Debugging Welt!"
echo $my_var
set +x

# Verwendung von bashdb
# Installieren Sie bashdb mit Ihrem Paketmanager, z. B. apt, yum, brew.
# Debuggen eines Skripts namens my_script.sh:
bashdb my_script.sh

Ausgabe beim Ausführen mit set -x:

+ echo 'Starte Debugging'
Starte Debugging
+ my_var='Hallo, Debugging Welt!'
+ echo 'Hallo, Debugging Welt!'
Hallo, Debugging Welt!
+ set +x

Tiefergehend

Historisch gesehen bedeutete das Debuggen von Bash-Skripten, Ihren Code mit echo-Anweisungen zu übersäen. Aber dann kam set -x, das uns einen Einblick in die Laufzeitausführung gab, ohne manuelle Ausdrucke. Und für diejenigen, die mehr Kontrolle wünschen, tauchte der Debugger bashdb auf, inspiriert vom gdb Debugger für C/C++.

Was Alternativen betrifft, über die set-Befehle (-x, -v, -e) hinaus, gehören zu den anderen Optionen die Umleitung der Ausgabe in eine Datei zur Analyse oder die Verwendung externer Tools wie ShellCheck für statische Analysen.

Implementierungstechnisch ist set -x einfach; es ist eine native Bash-Option, die Befehle und ihre Argumente druckt, während sie ausgeführt werden. bashdb hingegen ermöglicht das Durchschreiten von Code, das Setzen von Haltepunkten und das Auswerten von Ausdrücken – Dinge, die Ihnen eine Kampfchance gegen schwer fassbare Fehler geben.

Siehe auch