Cum se anulează `set -x`?

Am tastat set -x în terminal.

Acum terminalul continuă să tipărească ultima comandă rulați pe partea de sus a rezultatului meu, astfel încât comanda

~]$echo "this is what I see" 

returnează

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

Există nicio pagină manuală pentru set, cum pot dezactiva set -x?

Comentarii

  • set este o comandă shell builtin (cel puțin în bash este), astfel încât documentația este găsită în pagina de manual bash ' s. Căutați în pagina de manual /^ *SHELL BUILTIN COMMANDS pentru a citi totul despre set și prietenii săi!
  • dar există o pagină man pentru set! Face parte din ghidul programatorilor POSIX … Ar trebui să chiar obțineți acea serie … vă rog?
  • În Bash, tastați help set.
  • @ lonewarrior556 dacă găsiți vreun răspuns util, puteți comenta și / sau marca o soluție. Ne oferim timpul necesar pentru a ajuta ….

Răspuns

Utilizați set +x. Mai multe informații:

$ type set set is a special shell builtin 

Deoarece set este un shell integrat, acesta este documentat în documentația shell-ului dvs.

Aveți grijă că unele sisteme au pagini man pentru shell built-in, dar aceste pagini man sunt corecte doar dacă utilizați shell-ul implicit. Pe Linux, este posibil să aveți pagini man care prezintă comenzi POSIX, care va apărea pentru shell built-in-uri, deoarece nu există o pagină manuală a unui utilitar independent care să le umbrească; aceste pagini manuale sunt corecte pentru toate shell-urile în stil Bourne (liniuță, bash, * ksh și chiar zsh), dar de obicei incomplete.

Consultați Citirea și căutarea paginilor lungi de mana pentru sfaturi despre căutarea unui element încorporat într-o pagină man shell lungă. p>

În acest caz, răspunsul este același pentru toate shell-urile în stil Bourne. Dacă set -LETTER activează o opțiune, set +LETTER o dezactivează. Astfel, set +x dezactivează urmele. Ultima urmă care citește set +x este inevitabilă (cu excepția lăsând shell-ul să iasă – uneori puteți utiliza un subshell (set -x; command to trace; other command to trace); command that is not traced).

Comentarii

  • Acesta este un răspuns bun, dar m-ar fi salvat câteva minute dacă ați pus " set + x " la început, mai degrabă decât încorporat în ultimul paragraf. (Am găsit detaliile suplimentare utile.)
  • { set +x ;} 2> /dev/null ascunde urmele set +x (câștigat ' nu funcționează în shell Bourne). Unele cochilii încă generează un + 2> /dev/null.

Răspuns

Puteți opri modul de depanare prin set +x. Vedeți exemplul pagina

Răspuns

Ați activat depanarea mod, trebuie să îl dezactivați.

Extrageți formularul help set:

Utilizarea + în loc de – face ca aceste semnalizatoare să fie dezactivate.

Deci, tastați set +x

Răspuns

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

Nu puteți găsi o pagină manual doar pe set, deoarece după cum vedeți mai jos:

$ type set 

set este un shell special încorporat . În timp ce este documentat în pagina de manual pentru shell-ul dvs., presupunând bash aici, puteți obține, de asemenea, documentație specifică fie cu

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

Pagina manuală cu bash sau sh este o lectură bună, dar „este puțin lung de rezolvat. Informațiile eficiente de care aveți nevoie pentru a anula setarea -x se află la sfârșitul dinaintea Exit Status: și citește:

Folosind + în loc de – face ca aceste semnalizatoare să fie dezactivate. Steagurile pot fi, de asemenea, utilizate la invocarea shell-ului. Setul actual de steaguri poate fi găsit în $ -. Restul de n ARG-uri sunt parametri de poziție și sunt atribuiți, în ordine, la $ 1, $ 2, .. $ n. Dacă nu sunt date ARG-uri, toate variabilele shell sunt tipărite.

Comentarii

  • Deși nu este greșit , ce ați adăugat dincolo de răspunsurile existente?
  • @JeffSchaller Este ' editat pentru claritate și concizie. Când am avut nevoie de acest răspuns, a trebuit să citesc întreaga pagină pentru a afla răspunsul corect. De fapt, am renunțat să citesc răspunsul acceptat și m-am dus la help set și am citit asta. Am încercat să îmbunătățesc răspunsul acceptat. unix.stackexchange.com/revisions/149137/4 A fost acceptat, dar apoi respins.La fel ca un articol de știri, începe cu cele mai importante informații și presupune că în orice moment cititorul se poate opri, fiecare propoziție și paragraf următor fiind mai puțin importante decât procedura. ' este stilul meu SO pe unix se.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *