GNU/Linux >> Linux Esercitazione >  >> Linux

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

Soluzione 1:

Puoi reindirizzare l'output di qualsiasi programma in modo che non venga visto.

$ program > /dev/null

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

$ program &> /dev/null

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

Soluzione 2:

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) a un file (e sovrascrivere il file), utilizzare

 command > file.log

Per accodare a file.log, usa due > s

 command >> file.log

Per reindirizzare l'errore standard al file.log, usa

 command 2> file.log

E per aggiungere

 command 2>> file.log

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 l'output standard a file.log

Si noti che è anche possibile reindirizzare lo standard input in un comando che si aspetta lo standard input

 command << file.txt


Per maggiori dettagli, dai un'occhiata alla Advanced Bash Scripting Guide.

Soluzione 3:

Nascondi output standard:

./command >/dev/null

Nascondi l'output standard e l'errore standard:

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

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

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

Soluzione 4:

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

Modificato:

comando $ &> /dev/null

Soluzione 5:

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

Se hai bisogno di nascondere l'output senza che il programma lo sappia controllando il descrittore del file di output/errore, puoi provare a utilizzare quanto segue in una shell:

stty flusho; command ;stty -flusho

o se vuoi semplicemente nascondere l'input dal terminale:

stty  -echo; command ;stty  echo

Vedi la pagina di manuale di stty(1) per maggiori informazioni.

Per Linux, tutto quello che so è che Ubuntu 10.04 (Lucid Lynx) e alcuni Debian/Arch Linux (commentati sotto - grazie, hendry) non hanno il flusho setting (e non riesco a vedere nient'altro di appropriato nella pagina man). Il echo l'impostazione funziona comunque su Ubuntu.


Linux
  1. Come trovare l'applicazione per un tipo Mime su Linux?

  2. Come modificare la shell predefinita in Linux

  3. Come posso randomizzare le righe in un file utilizzando strumenti standard su Red Hat Linux?

  4. Come convertire l'output della shell di Linux in HTML?

  5. Come posso ottenere lo stato della tastiera in Linux?

Come installare Fish, la shell interattiva amichevole, in Linux

Come modificare la shell predefinita nel sistema Linux

Come posso trovare la mia versione della shell usando un comando Linux?

Python - Supervisore come registrare l'output standard -

Come posso nascondere la barra degli strumenti in Emacs in modo persistente?

Come limitare l'utilizzo della memoria per applicazione in Linux?