Ocultando a saída do comando de script

1

Estou criando um script de shell para configurar automaticamente um computador específico com as melhores configurações. Gostaria de ocultar todas as saídas desse script, exceto a saída de eco. É possível?

    
por Dremor 24.06.2014 / 15:24

2 respostas

5

Inicie seu script com:

exec 3>&1 1>/dev/null 2>&1

Isso salvará seu descritor de arquivo original de stdout para & 3 e, em seguida, redirecionará stdout e stderr para / dev / null. Sempre que você quiser imprimir algo, redirecione sua saída para & 3, como:

echo "This message won't be output"
echo "But this one will" >&3

E se você quiser esconder esse detalhe, você pode apenas definir uma função que ecoa para o fd 3:

say() {
    echo >&3 "$@"
}

say "This goes to the log"
    
por 24.06.2014 / 16:13
2

Você pode redirecionar o stdout para /dev/null adicionando

1>/dev/null

no final de cada linha do script que produzirá a saída.

Você pode redirecionar os erros da mesma maneira adicionando

2>/dev/null

A maioria dos comandos também tem a opção de desativar a saída normal para o console como -q ou algo parecido. Verifique as manpages dos comandos que você usa.

    
por 24.06.2014 / 15:27