Wie mache ich `set -x` rückgängig?

Ich habe set -x in Terminal eingegeben.

Jetzt druckt das Terminal den letzten Befehl weiter Führen Sie über meiner Ausgabe aus, damit der Befehl

~]$echo "this is what I see" 

+ echo "this is what I see" this is what I see 

zurückgibt Keine Manpage für set. Wie schalte ich set -x aus?

Kommentare

  • set ist ein Shell-Befehl builtin (zumindest in Bash), daher wird die Dokumentation gefunden in der Manpage von bash '. Durchsuchen Sie die Manpage nach /^ *SHELL BUILTIN COMMANDS, um alles über set und seine Freunde zu lesen!
  • aber gibt es eine man Seite für set! Es ist Teil des POSIX-Programmierhandbuchs … Sie sollten diese Serie wirklich erhalten … bitte?
  • Geben Sie in Bash help set.
  • @ lonewarrior556 Wenn Sie eine der Antworten hilfreich finden, können Sie bitte eine Lösung kommentieren und / oder markieren. Wir bringen unsere Zeit ein, um zu helfen …

Antwort

Verwenden Sie set +x. Weitere Informationen:

$ type set set is a special shell builtin 

Da set eine integrierte Shell ist, wird dies in der Dokumentation Ihrer Shell dokumentiert.

Beachten Sie, dass einige Systeme Manpages für integrierte Shell-Funktionen haben. Diese Manpages sind jedoch nur dann korrekt, wenn Sie die Standard-Shell verwenden. Unter Linux verfügen Sie möglicherweise über Manpages mit POSIX-Befehlen. Dies wird für Shell-Buildins angezeigt, da es keine Manpage eines eigenständigen Dienstprogramms gibt, mit der sie beschattet werden können. Diese Manpages sind für alle Shells im Bourne-Stil (Strich, Bash, * ksh und sogar zsh) korrekt, aber normalerweise unvollständig.

Unter Lesen und Durchsuchen langer Manpages finden Sie Tipps zur Suche nach einem in einer Long Shell integrierten Manpage.

In diesem Fall ist die Antwort für alle Bourne-Shells gleich. Wenn set -LETTER eine Option aktiviert, wird sie durch set +LETTER deaktiviert. Somit deaktiviert set +x Spuren. Der letzte Trace mit der Aufschrift set +x ist unvermeidbar (außer wenn die Shell beendet wird – manchmal können Sie eine Subshell (set -x; command to trace; other command to trace); command that is not traced verwenden).

Kommentare

  • Dies ist eine gute Antwort, aber es hätte mir ein paar Minuten gespart, wenn Sie die grundlegende " setze + x " am Anfang und nicht im letzten Absatz eingebettet. (Ich fand das zusätzliche Detail hilfreich.)
  • { set +x ;} 2> /dev/null verbirgt die Ablaufverfolgung set +x (won ' funktioniert jedoch nicht in der Bourne-Shell). Einige Shells geben jedoch immer noch eine + 2> /dev/null aus.

Antwort

Sie können den Debugging-Modus mit set +x beenden. Siehe Beispiel Seite

Antwort

Sie haben das Debuggen aktiviert Im Modus müssen Sie es deaktivieren.

Formular help set extrahieren:

Wenn Sie + anstelle von – verwenden, werden diese Flags deaktiviert.

Geben Sie also set +x

ein

Antwort

$ set +x # is the opposite of set -x, and will reverse what you typed. 

Sie können „keine Manpage nur auf , denn wie Sie unten sehen:

$ type set 

set ist eine spezielle Shell Während Sie in der Manpage für Ihre Shell dokumentiert sind und Bash hier annehmen, können Sie auch spezifische Dokumentation mit

$ help set || builtin help set # luckily Bash has builtin help on builtin commands 

erhalten. Die Handbuchseite zu Bash oder sh ist eine gute Lektüre, aber es ist ein wenig lang zu klären. Die effektiven Informationen, die Sie zum Aufheben Ihrer -x benötigen, befinden sich am Ende vor Exit Status: und lauten:

Wenn Sie + anstelle von – verwenden, werden diese Flags deaktiviert. Die Flags können auch beim Aufruf der Shell verwendet werden. Der aktuelle Satz von Flags befindet sich in $ -. Die verbleibenden n ARGs sind Positionsparameter und werden in der Reihenfolge $ 1, $ 2, .. $ n zugewiesen. Wenn keine ARGs angegeben sind, werden alle Shell-Variablen gedruckt.

Kommentare

  • Obwohl nicht falsch , was haben Sie über die vorhandenen Antworten hinaus hinzugefügt?
  • @JeffSchaller Es ' wurde aus Gründen der Direktheit und Kürze bearbeitet. Als ich diese Antwort brauchte, musste ich die ganze Seite lesen, um die richtige Antwort herauszufinden. Tatsächlich habe ich das Lesen der akzeptierten Antwort aufgegeben und bin einfach zu help set gegangen und habe das gelesen. Ich habe versucht, die akzeptierte Antwort zu verbessern. unix.stackexchange.com/revisions/149137/4 Es wurde akzeptiert, aber dann abgelehnt.Wie ein Nachrichtenartikel beginnt er mit den wichtigsten Informationen und geht davon aus, dass der Leser jederzeit aufhören kann, wobei jeder nächste Satz und Absatz weniger wichtig ist als das Verfahren. ' ist mein SO-Stil unter Unix.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.