
Ich verwende -x
zum Verfolgen der Ausführung von Bash-Skripten:
#!/bin/bash -x
x=1
y=2
während der Ausführung sendet an Ausgabe
+ x=1
+ y=2
die Frage: Wie kann ich mitten im Skript den Tracing-Modus stoppen/anhalten und dann wieder aktivieren? Bitte beachten Sie, dass es NICHT um etwas wie y=2 >/dev/null geht.
Ist dies im ausführlichen Modus ( #!/bin/bash -v
) möglich?
Antwort1
Derset
eingebautsteuert diese Optionen.
Zum Einschalten xtrace
:
set -x
So schalten Sie es aus:
set +x
Das ist ein bisschen eine umgekehrte Logik mit dem Plus und Minus, aber so ist es nun einmal.
Ebenso set
können alle anderen von unterstützten Optionen auch auf der Kommandozeile (*) gesetzt werden , also bash -u
hat man dasselbe wie set -u
usw. Eine Liste dieser Optionen findet sich in der verlinkten Beschreibung und help set
auf der Kommandozeile werden sie auch angezeigt.
Einige der Optionen haben auch Langformen, z. B. set -o xtrace
ist dasselbe wie set -x
.
(* Das können wir allerdings nicht andersherum sagen. Nicht alle Kommandozeilenoptionen können mit gesetzt werden set
, zB -l
hat kein Äquivalent und offensichtlich auch nicht -c
.)