Jeg skrev set -x
i terminalen.
Nu fortsætter terminalen med at udskrive den sidste kommando kør oven på min output, så kommandoen
~]$echo "this is what I see"
returnerer
+ echo "this is what I see" this is what I see
Der er ingen mandside for set
, hvordan slår jeg set -x
fra?
Kommentarer
-
set
er en shellbuiltin
kommando (i det mindste i bash er det), så dokumentationen findes i bash ' s mandeside. Søg på mandsiden for/^ *SHELL BUILTIN COMMANDS
for at læse alt omset
og dets venner! - men der er en
man
side tilset
! Det er en del af POSIX-programmørguiden … Du skal virkelig få den serie … tak? - I Bash skal du skrive
help set
. - @ lonewarrior556 Hvis du finder noget af svaret nyttigt, kan du venligst kommentere og / eller markere en løsning. Vi bidrager med vores tid til at hjælpe ….
Svar
Brug set +x
. Flere oplysninger:
$ type set set is a special shell builtin
Da set
er en shell-indbygget, er det dokumenteret i dokumentationen til din shell.
Pas på, at nogle systemer har mandsider til shell-indbyggede, men disse mandsider er kun korrekte, hvis du bruger standardskallen. På Linux kan du have mandsider, der præsenterer POSIX-kommandoer, der vil dukke op for shell-indbyggede, fordi der ikke er nogen mandside i et enkeltstående værktøj, der skygger dem; disse mandsider er korrekte for alle skaller i Bourne-stil (dash, bash, * ksh og endda zsh), men typisk ufuldstændige.
Se Læsning og søgning på sider med lange mænd for tip til at søge efter en indbygget i en lang shell-mandside.
I dette tilfælde er svaret det samme for alle skaller i Bourne-stil. Hvis set -LETTER
aktiverer en indstilling, deaktiveres set +LETTER
. Således deaktiverer set +x
spor. Det sidste spor, der læser set +x
, er uundgåelig (undtagen ved at lade skallen gå ud – nogle gange kan du bruge en subshell (set -x; command to trace; other command to trace); command that is not traced
).
Kommentarer
Svar
Du kan stoppe fejlretningstilstand ved at set +x
. Se eksempel side
Svar
Du har aktiveret fejlretning skal du slå den fra.
Uddrag formular help set
:
Brug + i stedet for – får disse flag til at blive slået fra.
Så skriv set +x
Svar
$ set +x # is the opposite of set -x, and will reverse what you typed.
Du kan ikke finde en mandside bare på set
, fordi som du ser nedenfor:
$ type set
set
er en speciel shell-indbygget Mens det er dokumenteret på mandsiden til din shell, forudsat at du bash her, kan du også få specifik dokumentation med enten
$ help set || builtin help set # luckily Bash has builtin help on builtin commands
Den manuelle side om bash eller sh er en god læsning, men det er lidt længe at ordne. De effektive oplysninger, du havde brug for til at fjerne indstillingen af din -x
, er i slutningen før Exit Status:
og læser:
Brug + i stedet for – får disse flag til at blive slået fra. Flagene kan også bruges ved påkaldelse af skallen. Det aktuelle sæt flag findes i $ -. De resterende n ARGer er positionsparametre og tildeles i rækkefølge $ 1, $ 2, .. $ n. Hvis der ikke er angivet ARGer, udskrives alle shellvariabler.
Kommentarer
- Selvom det ikke er forkert , hvad har du tilføjet ud over de eksisterende svar?
- @JeffSchaller Det ' er redigeret for direkte og kortfattede. Da jeg havde brug for dette svar, måtte jeg læse hele siden for at finde ud af det rigtige svar. Faktisk opgav jeg at læse det accepterede svar og gik bare til
help set
og læste det. Jeg forsøgte at forbedre det accepterede svar. unix.stackexchange.com/revisions/149137/4 Det blev accepteret, men derefter afvist.Ligesom en nyhedsartikel starter det med de vigtigste oplysninger og antager, at læseren til enhver tid kan stoppe, hvor hver næste sætning og afsnit er mindre vigtige end proceduren. Det ' er min SO-stil på unix se.
{ set +x ;} 2> /dev/null
skjulerset +x
sporet (vandt ' fungerer dog ikke i Bourne-skallen). Nogle skaller udsender dog stadig en+ 2> /dev/null
.