.
Se a saída desnecessária do seu script o incomodar, despeje-o em /dev/null.
Ao desenvolver um script para automatizar uma tarefa, você pode descobrir que a saída é impressa mesmo que na verdade não exija nada e, por causa disso, seu terminal fica lotado de texto desnecessário.
A melhor maneira de resolver esse problema é redirecionar a saída do seu script para /dev/null, o que efetivamente descartará a saída e impedirá que ela obstrua seu terminal.
Então, vamos falar sobre como redirecionar a saída de um script para /dev/null e quais são as vantagens e desvantagens de redirecionar a saída para /dev/null.
O que é /dev/null/ no Linux e como ele coletará a saída do seu script?
A pergunta óbvia é: o que exatamente é /dev/null/ e por que o usamos? /dev/null é um arquivo especial que é basicamente usado em scripts de shell para despejar ou descartar saída (stdout), erros (stderr) ou ambos (stdout e stderr).
Muitas vezes é chamado de “buraco negro” porque os dados gravados nele nunca podem ser recuperados.
É importante observar que você não pode executar /dev/null em seu terminal e, por isso, não pode usar /dev/null na tubulação com outro comando.
Se você não acredita em mim, dê uma olhada na saída de stat /dev/null.
onde você pode ver que /dev/null é um dispositivo de caractere, que não ocupa nenhum espaço, portanto seu tamanho é 0 bytes e seu tipo é “caractere especial” sem permissão executável para executar.
Então, a pergunta seguinte óbvia é: “Como exatamente posso usar /dev/null?” Você pode enviar a saída padrão ou o erro padrão de um comando para /dev/null com o operador de redirecionamento e o descritor de arquivo correto.
Presumo que você esteja familiarizado com o conceito de “redirecionamento”, que permite salvar os resultados ou falhas de um comando em um arquivo em vez de mostrá-los na tela. Vou tentar explicar alguns dos conceitos aqui para que você possa ter uma noção de como usá-los com /dev/null, mas se não tiver certeza, leia este artigo.
Redirecionando a saída (stdout) para /dev/null no Linux
Vamos começar com Stdout, que significa “saída padrão” e é o canal de saída padrão de um comando quando o comando é executado com sucesso e produz alguma saída.
Esta saída pode ser direcionada para qualquer arquivo ou até mesmo /dev/null se não precisarmos. Para explicar como redirecionar a saída para /dev/null, primeiro veja como funciona.
Começarei mostrando o que acontece se eu não usar /dev/null e então redirecionar a saída para /dev/null. Por exemplo, se eu quiser imprimir os arquivos que estão localizados no diretório /etc/ssh/, posso simplesmente usar:
$ ls -l /etc/ssh
E aqui está a saída do comando acima, que exibe o conteúdo do arquivo do diretório /etc/ssh:

Agora, usarei o operador de redirecionamento (>) com o descritor de arquivo “1” para ocultar a saída do último comando.
Para fazer isso, simplesmente digito o mesmo comando, mas adiciono “1>/dev/nulo” ou então use a sintaxe mais curta “> /dev/null” até o fim.
$ ls -l /etc/ssh 1> /dev/null
or
$ ls -l /etc/ssh > /dev/null
Excelente! Como você pode ver no resultado abaixo, consegui usar o operador de redirecionamento para ocultar a saída que foi impressa primeiro na tela.

Agora é sua vez de concluir esta tarefa e você deve usar a mesma sintaxe de comando que acabei de demonstrar.
Redirecionando a saída de erro (stderr) para /dev/null no Linux
Stderr, que é a abreviação de “erro padrão”, faz com que quaisquer avisos ou erros causados por um comando sejam exibidos na tela, o que é muito útil para mostrar erros e avisos, mas muitas vezes pode desviar a atenção da saída que se está procurando para.
Usando o operador de redirecionamento, você pode redirecionar esses erros e avisos para um arquivo de texto ou até mesmo completamente usando /dev/null.
Por exemplo, se eu listar um diretório que não existe, é claro que uma mensagem de erro será impressa na tela como “ls: não é possível acessar ‘/etc/ssh/desconhecido’: arquivo ou diretório inexistente.”
Para suprimir esse erro, posso usar o operador de redirecionamento da seguinte maneira:
$ ls /etc/ssh/unknown 2> /dev/null
A saída do comando acima é mostrada abaixo:

Isso não é difícil de entender, é?
Redirecionando saída e erros (stdout & stderr) para /dev/null no Linux
Dependendo de suas necessidades, você pode suprimir o erro ou enviar a mensagem usando o método acima, mas se não quiser que nenhum seja exibido na tela, envie a saída padrão e os erros para /dev/null, você precisa seguir o abaixo degraus.
Para isso, você precisa combinar a saída padrão (1) e os erros padrão (2) usando o operador “>” e redirecioná-los para /dev/null, assim: command > /dev/null 2>&1
Vamos dar um exemplo. Se você não deseja imprimir a mensagem de erro ou sucesso do comando, pode usar o seguinte comando para suprimir ambas as mensagens:
$ ls /etc/sshs/ > /dev/null 2>&1
Confuso com o comando acima? O comando dado acima pode ser difícil de entender, mas não é muito difícil de descobrir.
De acordo com a disponibilidade do arquivo ou diretório “ls”, o comando lançará um erro ou saída, mas não o exibirá aqui porque será sugado por /dev/null.
E então, 2>&1 estará sugando a saída de /dev/null porque este “/dev/null” está disponível em seu sistema de arquivos, o que pode interferir, então 2>&1 irá certificar-se de não imprimir nada.
Ao invés de usar o comando acima, você pode usar o abaixo, que é mais simples e fácil de usar:
$ ls /etc/sshs/ &> /dev/null
Veja os resultados por si mesmo, com a saída de ambos os comandos mostrados abaixo.

E com isso, termino.
Referência rápida para redirecionar a saída para /dev/null
- Use o seguinte comando para direcionar mensagens de saída padrão (stdout) para /dev/null:
- Use o seguinte comando para enviar mensagens de erro padrão (stderr) para /dev/null:
- Use o seguinte comando para enviar a saída padrão e o erro padrão para /dev/null:
Embrulhar
Essa pode ser uma ótima maneira de garantir que seus scripts sejam executados sem problemas e com eficiência, pois a saída não sobrecarregará seu terminal
Com isso em mente, é importante lembrar que redirecionar a saída para /dev/null tem sua utilidade, mas se você não tomar cuidado, pode causar problemas porque joga fora toda a saída e dificulta a depuração.
De qualquer forma, se houver algo que eu precise considerar, use o espaço abaixo para fornecer qualquer informação adicional ou feedback.
Até lá, coloque os pés para cima e relaxe. Como sempre, o próximo artigo será publicado em breve.

Um homem com uma tecnologia efusiva que explorou algumas das incríveis coisas da tecnologia e está explorando mais. Enquanto avançava, tive a chance de trabalhar no desenvolvimento Android, Linux, AWS e DevOps com várias ferramentas de código aberto.
.







