Come annullare “set -x”?

Ho digitato set -x nel terminale.

Ora il terminale continua a stampare lultimo comando viene eseguito sopra il mio output in modo che il comando

~]$echo "this is what I see" 

restituisca

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

Cè nessuna pagina man per set, come faccio a disattivare set -x?

Commenti

  • set è un comando builtin della shell (almeno in bash lo è), quindi la documentazione viene trovata nella pagina man di bash '. Cerca /^ *SHELL BUILTIN COMMANDS nella pagina man per leggere tutto su set e i suoi amici!
  • ma una man pagina per set! Fa parte della guida per programmatori POSIX … Dovresti davvero ottenere quella serie … per favore?
  • In Bash, digita help set.
  • @ lonewarrior556 se trovi utile una qualsiasi delle risposte, puoi commentare e / o contrassegnare una soluzione. Contribuiamo con il nostro tempo per assistere ….

Risposta

Usa set +x. Ulteriori informazioni:

$ type set set is a special shell builtin 

Poiché set è un builtin della shell, è documentato nella documentazione della vostra shell.

Fai attenzione che alcuni sistemi hanno pagine man per i builtin della shell, ma queste pagine man sono corrette solo se stai usando la shell predefinita. Su Linux, potresti avere pagine man che presentano comandi POSIX, che apparirà per i built-in della shell perché non cè una pagina man di unutilità standalone che li ombreggi; queste pagine di manuale sono corrette per tutte le shell in stile Bourne (trattino, bash, * ksh e persino zsh) ma tipicamente incomplete.

Vedi Lettura e ricerca di pagine man lunghe per suggerimenti sulla ricerca di un builtin in una pagina man di shell lunga.

In questo caso, la risposta è la stessa per tutte le shell in stile Bourne. Se set -LETTER attiva unopzione, set +LETTER la disattiva. Pertanto, set +x disattiva le tracce. Lultima traccia che legge set +x è inevitabile (tranne lasciando che la shell esca – a volte puoi usare una sottoshell (set -x; command to trace; other command to trace); command that is not traced).

Commenti

  • Questa è una buona risposta, ma mi avrebbe fatto risparmiare un paio di minuti se mettessi il " imposta + x " allinizio piuttosto che incorporato nellultimo paragrafo. (Ho trovato utile il dettaglio aggiuntivo.)
  • { set +x ;} 2> /dev/null nasconde la set +x trace (won ' non funziona però nella Bourne shell). Tuttavia, alcune shell producono ancora un + 2> /dev/null.

Risposta

Puoi interrompere la modalità di debug set +x. Vedi esempio pagina

Risposta

Hai abilitato il debug modalità, è necessario disattivarla.

Estrai il modulo help set:

Lutilizzo di + anziché – provoca la disattivazione di questi flag.

Quindi digita set +x

Risposta

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

Non puoi “trovare una pagina man solo su set, perché come vedi sotto:

$ type set 

set è una speciale shell incorporata Sebbene sia documentato nella pagina man della tua shell, presumendo bash qui, puoi anche ottenere documentazione specifica con

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

La pagina di manuale su bash o sh è una buona lettura, ma è “un po lungo da risolvere. Le informazioni effettive necessarie per annullare limpostazione di -x si trovano alla fine prima di Exit Status: e si legge:

Luso di + invece di – fa sì che questi flag vengano disattivati. I flag possono essere utilizzati anche su invocazione della shell. Il set corrente di flag può essere trovato in $ -. I restanti n ARG sono parametri posizionali e sono assegnati, in ordine, a $ 1, $ 2, .. $ n. Se non vengono forniti ARG, vengono stampate tutte le variabili di shell.

Commenti

  • Anche se non è sbagliato , cosa hai aggiunto oltre alle risposte esistenti?
  • @JeffSchaller È ' modificato per immediatezza e brevità. Quando ho avuto bisogno di questa risposta ho dovuto leggere lintera pagina per trovare la risposta corretta. In effetti ho smesso di leggere la risposta accettata e sono andato a help set e lho letta. Ho provato a migliorare la risposta accettata. unix.stackexchange.com/revisions/149137/4 È stato accettato ma poi rifiutato.Come un articolo di notizie, inizia con le informazioni più importanti e presume che in qualsiasi momento il lettore possa fermarsi, con ogni frase e paragrafo successivo meno importante del procedimento. ' è il mio stile SO su unix se.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *