Ocultando a saída do comando de script

Ocultando a saída do comando de script

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

Responder1

Comece seu script com:

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

Isso salvará seu descritor de arquivo original para stdout em &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 ocultar esse detalhe, basta definir uma função que ecoe em fd 3:

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

say "This goes to the log"

Responder2

Você pode redirecionar stdout /dev/nulladicionando

1>/dev/null

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

Você pode redirecionar erros da mesma maneira adicionando

2>/dev/null

A maioria dos comandos também tem a opção de desligar a saída normal para o console -qou algo parecido. Verifique as páginas de manual dos comandos que você usa.

informação relacionada