Jag skrev set -x
i terminalen.
Nu fortsätter terminalen att skriva ut det sista kommandot kör ovanpå min utdata så att kommandot
~]$echo "this is what I see"
returnerar
+ echo "this is what I see" this is what I see
Det finns ingen mansida för set
, hur stänger jag av set -x
?
Kommentarer
-
set
är ett skalbuiltin
-kommando (åtminstone i bash är det), så dokumentationen finns i bash ' s mansida. Sök på mansidan för/^ *SHELL BUILTIN COMMANDS
för att läsa allt omset
och dess vänner! - men det finns en
man
sida förset
! Det är en del av POSIX-programmerarguiden … Du ska verkligen få den serien … snälla? - I Bash skriver du
help set
. - @ lonewarrior556 om du hittar något av svaret till hjälp, kan du kommentera och / eller markera en lösning. Vi bidrar med vår tid att hjälpa ….
Svar
Använd set +x
. Mer information:
$ type set set is a special shell builtin
Eftersom set
är ett inbyggt skal dokumenteras det i dokumentationen för ditt skal.
Var uppmärksam på att vissa system har man-sidor för inbyggda skal, men dessa man-sidor är bara korrekta om du använder standardskalet. På Linux kan du ha man-sidor som innehåller POSIX-kommandon, som kommer att dyka upp för inbyggda skal eftersom det inte finns någon mansida för ett fristående verktyg för att skugga dem; dessa man-sidor är korrekta för alla skal i Bourne-stil (streck, bash, * ksh och till och med zsh) men vanligtvis ofullständiga.
Se Läsa och söka på långa sidor för tips om hur du söker efter en inbyggd i en lång skal-mansida.
I det här fallet är svaret detsamma för alla skal i Bourne-stil. Om set -LETTER
aktiverar ett alternativ, stänger det av set +LETTER
. Således stänger set +x
av spår. Det sista spåret som läser set +x
är oundvikligt (förutom genom att låta skalet gå ut – ibland kan du använda en subshell (set -x; command to trace; other command to trace); command that is not traced
).
Kommentarer
Svar
Du kan stoppa felsökningsläget genom att set +x
. Se exempel sida
Svar
Du har aktiverat felsökning måste du stänga av den.
Extrahera formulär help set
:
Att använda + istället för – gör att dessa flaggor stängs av.
Så skriv set +x
Svar
$ set +x # is the opposite of set -x, and will reverse what you typed.
Du kan inte hitta en mansida bara på set
, för som du ser nedan:
$ type set
set
är ett speciellt inbyggt skal Även om det är dokumenterat på mansidan för ditt skal, förutsatt att du bash här, kan du också få specifik dokumentation med antingen
$ help set || builtin help set # luckily Bash has builtin help on builtin commands
Den manuella sidan på bash eller sh är en bra läsning, men det är lite långt att reda ut. Den effektiva informationen du behövde för att avmarkera -x
är i slutet före Exit Status:
och läser:
Att använda + i stället för – gör att dessa flaggor stängs av. Flaggorna kan också användas vid anrop av skalet. Den aktuella uppsättningen flaggor finns i $ -. De återstående n ARG: erna är positionsparametrar och tilldelas i ordning $ 1, $ 2, .. $ n. Om inga ARG anges skrivs alla skalvariabler ut.
Kommentarer
- Även om det inte är fel , vad har du lagt till utöver de befintliga svaren?
- @JeffSchaller Det ' är redigerat för direkt och kortfattat. När jag behövde det här svaret var jag tvungen att läsa hela sidan för att få reda på rätt svar. Faktum är att jag slutade läsa det accepterade svaret och bara gick till
help set
och läste det. Jag försökte förbättra det accepterade svaret. unix.stackexchange.com/revisions/149137/4 Det godkändes men avvisades sedan.Som en nyhetsartikel börjar den med den viktigaste informationen och antar att läsaren när som helst kan sluta, med varje nästa mening och stycke som är mindre viktiga än förfarandet. Det ' är min SO-stil på unix se.
{ set +x ;} 2> /dev/null
döljerset +x
spåret (vann ' fungerar dock inte i Bourne-skalet). Vissa skal skickar fortfarande ut ett+ 2> /dev/null
.