Hvordan fortryder man set -x?

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 shell builtin 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 om set og dets venner!
  • men der er en man side til set! 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

  • Dette er et godt svar, men det ville have sparet mig et par minutter, hvis du lægger det grundlæggende " sæt + x " i starten snarere end indlejret i sidste afsnit. (Jeg fandt yderligere detaljer nyttige.)
  • { set +x ;} 2> /dev/null skjuler set +x sporet (vandt ' fungerer dog ikke i Bourne-skallen). Nogle skaller udsender dog stadig en + 2> /dev/null.

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.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *