Come nascondere l'output dello schermo (printf) di un'applicazione shell in Linux?
Come nascondere l'output dello schermo (printf) di un'applicazione shell in Linux?
Risposte:
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.
wget
puoi usare le -q
opzioni per renderlo silenzioso.
Ci sono tre IO Device disponibili sulla riga di comando.
standard in - 0
standard out - 1
standard error - 2
Per reindirizzare lo standard out (l'output predefinito) su un file (e sovrascriverlo), utilizzare
command > file.log
Per aggiungere a file.log, usa 2> 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 (stderr) in 1 (stdout) e invia stdout a file.log
Si noti che è anche possibile reindirizzare lo standard in un comando che prevede lo stdin
command << file.txt
MODIFICA
Per maggiori dettagli, consulta la Guida agli script avanzati di Bash
command > file.log 2>&1
funziona?
> file
e il secondo è 2>&1
. Il primo reindirizza lo standard su un file. Il secondo prende il secondo descrittore di file e lo reindirizza al primo. È possibile eseguire il contrario, reindirizzare l'output standard su errore standard utilizzando >&2
e quindi reindirizzare l'errore standard su un file con 2> file
.
Se vuoi solo nascondere l'output (e non salvarlo in un file), puoi usare:
Modificato:
$ command &> / dev / null
Per Mac OS X (10.6 "Snow Leopard"):
Se è necessario nascondere l'output senza farlo conoscere al programma controllando il descrittore del file di output / errore, è possibile provare a utilizzare quanto segue in una 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 Ubunutu (10.04 "Lucid") e alcuni "Debian / Arch" (commentati sotto - tnx hendry) non hanno l' flusho
impostazione (e non riesco a vedere nulla di appropriato nella pagina di manuale ) . L' echo
impostazione funziona comunque su Ubuntu.