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
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 deset +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.
set
is een shellbuiltin
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 overset
en zijn vrienden!man
pagina voorset
! Het maakt deel uit van de POSIX-programmeurshandleiding … Je zou die serie echt moeten halen … alstublieft?help set
.