Como esconder a saída de uma aplicação shell no Linux?

34

Como esconder a saída da tela (printf) de um aplicativo shell no Linux?

    
por Jader Dias 17.07.2009 / 04:59

5 respostas

57

Você pode redirecionar a saída de qualquer programa para que ele não seja visto.

$ program > /dev/null

Isso redirecionará a saída padrão - você ainda verá erros

$ program &> /dev/null

Isso redirecionará toda a saída, incluindo erros.

    
por 17.07.2009 / 05:02
27

Existem três dispositivos IO disponíveis na linha de comando.

 standard in - 0 
 standard out - 1 
 standard error - 2 

Para redirecionar a saída padrão (a saída padrão) para um arquivo (e sobrescrever o arquivo), use

 command > file.log 

Para anexar a file.log, use 2 > s

 command >> file.log

para redirecionar o erro padrão para o arquivo file.log, use

 command 2> file.log

e para anexar

 command 2>> file.log

Para combinar as saídas em um fluxo e enviá-las para um único lugar

 command > file.log 2>&1 

Envia 2 (stderr) para 1 (stdout) e envia stdout para file.log

Observe que também é possível redirecionar o padrão para um comando que espera stdin

 command << file.txt 

EDITAR
Para obter mais detalhes, confira o Guia de script avançado de bash

    
por 17.07.2009 / 05:04
9

Ocultar saída padrão

./command >/dev/null

Ocultar saídas padrão e de erro

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

Ocultar saídas padrão e de erro e liberar terminal (execute o comando em segundo plano)

./command >/dev/null 2>&1 &
    
por 10.04.2013 / 10:28
3

Se você quiser apenas ocultar a saída (e não salvá-la em um arquivo), poderá usar:

Editado:

$ comando & > / dev / null

    
por 17.07.2009 / 05:02
2

Para Mac OS X (10.6 "Snow Leopard"):

Se você precisar ocultar a saída sem informar o programa, verifique o descritor de arquivo de saída / erro e tente usar o seguinte em um shell:

stty flusho; command ;stty -flusho

ou se você quiser ocultar a entrada do terminal pelo caminho:

stty  -echo; command ;stty  echo

Veja a página de manual stty (1) para mais informações

Para Linux tudo que eu sei é que o Ubunutu (10.04 "Lucid") e alguns "Debian / Arch" (comentados abaixo - tnx hendry) não possuem a configuração flusho (e não consigo ver nada mais apropriado na página do homem). A configuração echo funciona no Ubuntu de qualquer maneira.

    
por 01.02.2011 / 06:31