Hoe `set -x` ongedaan maken?

Ik typte set -x in terminal.

Nu blijft de terminal het laatste commando afdrukken draai bovenop mijn uitvoer, dus het commando

~]$echo "this is what I see" 

retourneert

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

Er is geen man-pagina voor set, hoe zet ik set -x uit?

Reacties

  • set is een shell builtin commando (tenminste in bash), dus de documentatie wordt gevonden in bash ' s man-pagina. Zoek in de man-pagina naar /^ *SHELL BUILTIN COMMANDS om alles te lezen over set en zijn vrienden!
  • maar die is er een man pagina voor set! Het maakt deel uit van de POSIX-programmeurshandleiding … Je zou die serie echt moeten halen … alstublieft?
  • Typ in Bash help set.
  • @ lonewarrior556 als u een van de antwoorden nuttig vindt, kunt u alsjeblieft commentaar geven en / of een oplossing markeren. We besteden onze tijd om te helpen …

Antwoord

Gebruik set +x. Meer informatie:

$ type set set is a special shell builtin 

Aangezien set een ingebouwde shell is, wordt het gedocumenteerd in de documentatie van uw shell.

Pas op dat sommige systemen manpages hebben voor shell-buildins, maar deze manpages zijn alleen correct als je de standaardshell gebruikt. Onder Linux heb je manpages die POSIX-commandos presenteren, die zal verschijnen voor shell-builtins omdat er geen manpage is van een op zichzelf staand hulpprogramma om ze te schaduwen; deze manpages zijn correct voor alle Bourne-achtige shells (dash, bash, * ksh en zelfs zsh), maar zijn meestal onvolledig.

Zie Lezen en doorzoeken van lange man-paginas voor tips over het zoeken naar een ingebouwde man-pagina in een lange shell-man-pagina.

In dit geval is het antwoord hetzelfde voor alle Bourne-achtige shells. Als set -LETTER een optie inschakelt, set +LETTER schakelt deze uit. Dus set +x schakelt sporen uit. Het laatste spoor dat set +x leest, is onvermijdelijk (behalve door de shell te laten afsluiten – soms kun je een subshell gebruiken (set -x; command to trace; other command to trace); command that is not traced).

Reacties

  • Dit is een goed antwoord, maar het zou me een paar minuten hebben bespaard als je de basis " set + x " aan het begin in plaats van ingesloten in de laatste alinea. (Ik vond de aanvullende details nuttig.)
  • { set +x ;} 2> /dev/null verbergt de set +x trace (won ' werkt echter niet in de Bourne-shell). Sommige shells geven echter nog steeds een + 2> /dev/null weer.

Antwoord

U kunt de foutopsporingsmodus stoppen door set +x. Zie voorbeeld pagina

Antwoord

Je hebt foutopsporing ingeschakeld modus, moet u deze uitschakelen.

Formulier uitpakken help set:

Als u + gebruikt in plaats van -, worden deze vlaggen uitgeschakeld.

Typ dus set +x

Antwoord

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

Je kunt “geen manpage vinden alleen op set, want zoals je hieronder ziet:

$ type set 

set is een speciale shell ingebouwd . Hoewel gedocumenteerd in de man-pagina voor je shell, uitgaande van bash hier, kun je ook specifieke documentatie krijgen met

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

De man-pagina over bash of sh is goed gelezen, maar het duurt even om uit te zoeken. De effectieve informatie die u nodig had om uw -x ongedaan te maken, staat aan het einde voor Exit Status: en luidt:

Door + in plaats van – te gebruiken, worden deze vlaggen uitgeschakeld. De vlaggen kunnen ook worden gebruikt bij het aanroepen van de shell. De huidige set vlaggen is te vinden in $ -. De overige n ARGs zijn positionele parameters en worden in volgorde toegewezen aan $ 1, $ 2, .. $ n. Als er geen ARGs worden gegeven, worden alle shell-variabelen afgedrukt.

Opmerkingen

  • Hoewel niet verkeerd , wat heb je toegevoegd naast de bestaande antwoorden?
  • @JeffSchaller Het ' is bewerkt voor directheid en beknoptheid. Toen ik dit antwoord nodig had, moest ik de hele pagina lezen om het juiste antwoord te vinden. In feite stopte ik met het lezen van het geaccepteerde antwoord en ging ik gewoon naar help set en las dat. Ik heb geprobeerd het geaccepteerde antwoord te verbeteren. unix.stackexchange.com/revisions/149137/4 Het werd geaccepteerd maar vervolgens afgewezen.Net als een nieuwsartikel begint het met de belangrijkste informatie en gaat het ervan uit dat de lezer op elk moment kan stoppen, waarbij elke volgende zin en alinea minder belangrijk is dan het vervolg. Het ' is mijn SO-stijl op unix se.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *