Kirjoitin set -x
päätteeseen.
Nyt pääte jatkaa viimeisen komennon tulostamista suoritetaan lähdön päällä, joten komento
~]$echo "this is what I see"
palaa
+ echo "this is what I see" this is what I see
Siellä on ei man-sivua ryhmälle set
, miten set -x
poistetaan käytöstä?
Kommentit
-
set
on shellbuiltin
-komento (ainakin bashissa se on), joten dokumentaatio löytyy bash ' -sivulla. Etsi man-sivulta/^ *SHELL BUILTIN COMMANDS
ja lue kaikki aiheestaset
ja sen ystävistä! - mutta on
man
-sivu sivulleset
! Se on osa POSIX-ohjelmoijan opasta … Sinun pitäisi todella hankkia tuo sarja … kiitos? - Kirjoita Bashiin
help set
. - @ lonewarrior556, jos jokin vastauksista on hyödyllinen, voitko kommentoida ja / tai merkitä ratkaisun. Annamme aikamme auttaa ….
Vastaa
Käytä set +x
. Lisätietoja:
$ type set set is a special shell builtin
Koska set
on sisäänrakennettu kuori, se on dokumentoitu kuoren dokumentaatiossa.
Varo, että joissakin järjestelmissä on man-sivut shell-sisäänrakennuksille, mutta nämä man-sivut ovat oikeita vain, jos käytät oletussimppua. Linuxissa sinulla voi olla man-sivuja, jotka esittävät POSIX-komentoja, joka tulee esiin kuorirakenteille, koska erillisen apuohjelman man-sivua ei ole varjossa; nämä man-sivut ovat oikein kaikille Bourne-tyylisille kuoreille (viiva, bash, * ksh ja jopa zsh), mutta tyypillisesti puutteelliset.
Katso kohdasta Pitkien man-sivujen lukeminen ja etsiminen vinkkejä sisäisen rakenteen etsimiseen pitkässä kuoren man-sivulla.
Tässä tapauksessa vastaus on sama kaikille Bourne-tyylisille kuorille. Jos set -LETTER
käynnistää vaihtoehdon, set +LETTER
sammuttaa sen. Siten set +x
poistaa jäljet käytöstä. Viimeinen jäljitys, joka lukee set +x
, on väistämätön (paitsi antamalla kuoren poistua – joskus voit käyttää alikuorta (set -x; command to trace; other command to trace); command that is not traced
).
Kommentit
Vastaa
Voit lopettaa virheenkorjaustilan set +x
-toiminnolla. Katso esimerkki sivu
Vastaus
Olet ottanut virheenkorjauksen käyttöön tilassa, sinun on poistettava se käytöstä.
Pura lomake help set
:
Käyttämällä + eikä – näitä lippuja ei käytetä.
Kirjoita siis set +x
Vastaa
$ set +x # is the opposite of set -x, and will reverse what you typed.
Et löydä man-sivua vain sivulta set
, koska kuten alla näet:
$ type set
set
on sisäänrakennettu erityinen kuori . Vaikka olet dokumentoitu shellisi man-sivulla, olettaen, että täällä on bash, voit myös hankkia tarkkoja asiakirjoja joko
$ help set || builtin help set # luckily Bash has builtin help on builtin commands
Bashin tai sh: n manuaalinen sivu on hyvä lukea, mutta se on vähän kauan selvittää. Tehokkaat tiedot, jotka tarvitsit -x
-asetuksen poistamiseksi, ovat lopussa ennen Exit Status:
ja lukevat:
Käyttämällä +: n sijaan – nämä liput poistetaan käytöstä. Lippuja voidaan käyttää myös kuoren kutsumisessa. Nykyinen lippusarja löytyy kohdasta $ -. Loput n ARG: t ovat sijaintiparametreja, ja niille määrätään järjestyksessä $ 1, $ 2, .. $ n. Jos ARG-arvoja ei anneta, kaikki kuorimuuttujat tulostetaan.
Kommentit
- Ei ole väärin , mitä olet lisännyt olemassa olevien vastausten lisäksi?
- @JeffSchaller It ' s on muokattu suoruuden ja lyhyyden vuoksi. Kun tarvitsin tätä vastausta, jouduin lukemaan koko sivun saadaksesi selville oikean vastauksen. Itse asiassa luopuin hyväksytyn vastauksen lukemisesta ja menin vain kohtaan
help set
ja luin sen. Yritin parantaa hyväksyttyä vastausta. unix.stackexchange.com/revisions/149137/4 Se hyväksyttiin, mutta hylättiin.Kuten uutisartikkeli, se alkaa tärkeimmistä tiedoista ja olettaa, että lukija voi milloin tahansa pysähtyä, jolloin jokaisen seuraavan lauseen ja kappaleen merkitys on vähemmän kuin menettely. Se ' on SO-tyylini unix se -palvelussa.
{ set +x ;} 2> /dev/null
piilottaaset +x
-jäljen (voitti ' ei kuitenkaan toimi Bourne-kuoressa). Jotkut kuoret tuottavat silti+ 2> /dev/null
.