Ich habe einige Probleme mit einigen Skripten in Bash, mit Fehlern und unerwartetem Verhalten. Ich möchte die Ursachen der Probleme untersuchen, damit ich Korrekturen anwenden kann. Gibt es eine Möglichkeit, eine Art „Debug-Modus“ für Bash einzuschalten, um mehr Informationen zu erhalten?
Akzeptierte Antwort:
Starten Sie Ihr Bash-Skript mit bash -x ./script.sh
oder fügen Sie in Ihrem Skript set -x
hinzu um die Debug-Ausgabe zu sehen.
Zusätzlich mit bash
4.1 oder höher:
Wenn Sie die Debug-Ausgabe in eine separate Datei schreiben möchten, fügen Sie dies Ihrem Skript hinzu:
exec 5> debug_output.txt
BASH_XTRACEFD="5"
Siehe:https://stackoverflow.com/a/25593226/3776858
Wenn Sie Zeilennummern sehen möchten, fügen Sie Folgendes hinzu:
PS4='$LINENO: '
Wenn Sie Zugriff auf logger
haben Befehl, dann können Sie dies verwenden, um Debug-Ausgaben über Ihr Syslog mit Zeitstempel, Skriptname und Zeilennummer zu schreiben:
#!/bin/bash
exec 5> >(logger -t $0)
BASH_XTRACEFD="5"
PS4='$LINENO: '
set -x
# Place your code here
Sie können die Option -p
verwenden von logger
Befehl zum Festlegen einer individuellen Einrichtung und Ebene zum Schreiben von Ausgaben über lokales Syslog in eine eigene Protokolldatei.