Kuinka kumota `set -x`?

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 shell builtin -komento (ainakin bashissa se on), joten dokumentaatio löytyy bash ' -sivulla. Etsi man-sivulta /^ *SHELL BUILTIN COMMANDS ja lue kaikki aiheesta set ja sen ystävistä!
  • mutta on man -sivu sivulle set! 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

  • Tämä on hyvä vastaus, mutta se olisi säästänyt minulle muutaman minuutin, jos laitat perus " set + x " alussa pikemminkin kuin upotettuna viimeiseen kappaleeseen. (Minusta lisätiedot olivat hyödyllisiä.)
  • { set +x ;} 2> /dev/null piilottaa set +x -jäljen (voitti ' ei kuitenkaan toimi Bourne-kuoressa). Jotkut kuoret tuottavat silti + 2> /dev/null.

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.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *