Jak cofnąć `set -x`?

W terminalu wpisałem set -x.

Teraz terminal nadal drukuje ostatnie polecenie działa na początku mojego wyniku, więc polecenie

~]$echo "this is what I see" 

zwraca

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

Jest brak strony podręcznika dla set, jak wyłączyć set -x?

Komentarze

  • set to polecenie powłoki builtin (przynajmniej w bash jest), więc dokumentacja została znaleziona na stronie podręcznika bash '. Przeszukaj stronę podręcznika pod kątem /^ *SHELL BUILTIN COMMANDS, aby przeczytać wszystko o set i jego przyjaciołach!
  • ale jest man strona dla set! Jest to część przewodnika programisty POSIX … Powinieneś naprawdę dostać tę serię … proszę?
  • W Bash, wpisz help set.
  • @ lonewarrior556 jeśli uznasz, że któraś z odpowiedzi była pomocna, czy możesz skomentować i / lub oznaczyć rozwiązanie. Poświęcamy swój czas, aby pomóc …

Odpowiedź

Użyj set +x. Więcej informacji:

$ type set set is a special shell builtin 

Ponieważ set jest wbudowaną powłoką, jest to udokumentowane w dokumentacji twojej powłoki.

Uważaj, że niektóre systemy mają strony podręcznika dla wbudowanych powłok, ale te strony podręcznika są poprawne tylko wtedy, gdy używasz domyślnej powłoki. W Linuksie możesz mieć strony podręcznika zawierające polecenia POSIX, które pojawią się dla poleceń wbudowanych powłoki, ponieważ nie ma strony podręcznika samodzielnego narzędzia, które mogłoby je śledzić; te strony podręcznika są poprawne dla wszystkich powłok w stylu Bournea (myślnik, bash, * ksh, a nawet zsh), ale zazwyczaj są niekompletne.

Zobacz Czytanie i przeszukiwanie długich stron podręcznika , aby uzyskać wskazówki dotyczące wyszukiwania wbudowanego na długiej stronie podręcznika powłoki.

W tym przypadku odpowiedź jest taka sama dla wszystkich powłok w stylu Bournea. Jeśli set -LETTER włączy opcję, set +LETTER ją wyłączy. Dlatego set +x wyłącza śledzenie. Ostatni ślad, który czyta set +x jest nieunikniony (z wyjątkiem pozwolenia na wyjście powłoki – czasami można użyć podpowłoki (set -x; command to trace; other command to trace); command that is not traced).

Komentarze

  • To dobra odpowiedź, ale zaoszczędziłoby mi to kilka minut, gdybyś umieścił podstawowe " set + x " na początku, a nie osadzone w ostatnim akapicie. (Dodatkowe szczegóły okazały się pomocne).
  • { set +x ;} 2> /dev/null ukrywa set +x ślad (wygrał ' nie działa jednak w powłoce Bournea). Jednak niektóre powłoki nadal wyświetlają + 2> /dev/null.

Odpowiedź

Możesz zatrzymać tryb debugowania przez set +x. Zobacz przykładową stronę

Odpowiedź

Włączono debugowanie tryb, musisz go wyłączyć.

Wyodrębnij formularz help set:

Użycie + zamiast – powoduje wyłączenie tych flag.

Więc wpisz set +x

Odpowiedź

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

Nie można znaleźć strony podręcznika tylko w set, ponieważ jak widać poniżej:

$ type set 

set to specjalna wbudowana powłoka . Chociaż jest to udokumentowane na stronie podręcznika systemowego dla Twojej powłoki, zakładając tutaj bash, możesz również uzyskać konkretną dokumentację za pomocą

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

Strona podręcznika bash lub sh to dobra lektura, ale to trochę za długo na uporządkowanie. Efektywne informacje potrzebne do cofnięcia ustawienia -x znajdują się na końcu przed Exit Status: i brzmią:

Użycie + zamiast – powoduje wyłączenie tych flag. Flagi mogą być również używane przy wywołaniu powłoki. Bieżący zestaw flag można znaleźć w $ -. Pozostałe n ARG są parametrami pozycyjnymi i są przypisane kolejno do $ 1, $ 2, .. $ n. Jeśli nie podano ARG, wypisywane są wszystkie zmienne powłoki.

Komentarze

  • Chociaż nie jest źle , co dodałeś poza istniejącymi odpowiedziami?
  • @JeffSchaller It ' jest edytowany ze względu na bezpośredniość i zwięzłość. Kiedy potrzebowałem tej odpowiedzi, musiałem przeczytać całą stronę, aby znaleźć poprawną odpowiedź. W rzeczywistości zrezygnowałem z czytania zaakceptowanej odpowiedzi i po prostu poszedłem do help set i przeczytałem. Próbowałem poprawić zaakceptowaną odpowiedź. unix.stackexchange.com/revisions/149137/4 Został zaakceptowany, ale następnie odrzucony.Podobnie jak artykuł informacyjny, zaczyna się od najważniejszych informacji i zakłada, że w dowolnym momencie czytelnik może się zatrzymać, a każde następne zdanie i akapit są mniej ważne niż poprzednie. To ' to mój styl SO na unix se.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *