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
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
ukrywaset +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.
set
to polecenie powłokibuiltin
(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 oset
i jego przyjaciołach!man
strona dlaset
! Jest to część przewodnika programisty POSIX … Powinieneś naprawdę dostać tę serię … proszę?help set
.