sviluppo-web-qa.it

Come posso nascondere l'output di un'applicazione Shell in Linux?

Come posso nascondere l'output dello schermo (printf) di un'applicazione Shell in Linux?

47
Jader Dias

Puoi reindirizzare l'output di qualsiasi programma in modo che non sia visibile.

$ program > /dev/null

Questo reindirizzerà l'output standard: vedrai ancora eventuali errori

$ program &> /dev/null

Questo reindirizzerà tutto l'output, inclusi gli errori.

72
theotherreceive

Ci sono tre dispositivi I/O disponibili sulla riga di comando.

 standard input  - 0
 standard output - 1
 standard error  - 2

Per reindirizzare l'output standard (l'output predefinito) su un file (e sovrascrivere il file), utilizzare

 command > file.log

Per aggiungere a file.log, utilizzare due >S

 command >> file.log

Per reindirizzare l'errore standard su file.log, utilizzare

 command 2> file.log

E da aggiungere

 command 2>> file.log

Per combinare gli output in un flusso e inviarli tutti in un unico posto

 command > file.log 2>&1

Questo invia 2 (errore standard) in 1 (output standard) e invia output standard a file.log

Si noti che è anche possibile reindirizzare l'input standard in un comando che prevede l'input standard

 command << file.txt


Per maggiori dettagli, consulta Advanced Bash Scripting Guide .

30
Matt Simmons

Nascondi output standard:

./command >/dev/null

Nascondi output standard ed errore standard:

./command >/dev/null 2>&1

Nascondi output standard e errore standard e rilascia il terminale (esegui il comando in background):

./command >/dev/null 2>&1 &
12
gummy

Se vuoi solo nascondere l'output (e non salvarlo in un file), puoi usare:

Modificato:

$ command &>/dev/null

3
Lucho

Per Mac OS X v10.6 (Snow Leopard):

Se è necessario nascondere l'output senza comunicarlo al programma controllando il descrittore del file di output/errore, è possibile provare a utilizzare quanto segue in Shell:

stty flusho; command ;stty -flusho

o se vuoi solo nascondere l'input dal terminale a proposito:

stty  -echo; command ;stty  echo

Vedere la pagina di manuale stty (1) per ulteriori informazioni.

Per Linux, tutto quello che so è che buntu 10.04 (Lucid Lynx) e alcuni Debian/Arch Linux (commentati sotto - grazie, Hendry) non hanno l'impostazione flusho (e I non riesco a vedere nulla di appropriato nella pagina man). L'impostazione echo funziona comunque su Ubuntu.

2
vike