Debugging

Bash Optionen

  • bash -v verbose -> Jede Zeile wird vor dem Ausführen ausgegeben
  • bash -n noexec -> Check für Syntax Errors, aber ohne ausführen
  • bash -x xtrace -> Es wird der State von Variablen bei der Ausführung ausgegeben (Zeilen die mit + beginnen)
  • bash -u unset -> Nicht gesetzte Variablen werden als Error angesehen

Die Optionen können natürlich auch kombiniert werden

Kann auch immer mitten im Script verwendet werden:
set -x # enable xtrace
set +x # disable xtrace

Logging

Das + welches vor den Debug Nachrichten ausgegeben wird, ist übrigens $PS4, was natürlich überschrieben werden kann (bspw. mit $LINENO was die Zeilennummer ist)

exec 5> debug.log 
PS4="$LINENO: " 
BASH_XTRACEFD="5" # Sorgt dafür, dass wir mit der 5> oben die xtrace Ausgabe pipen können