
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/null
adicionando
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 -q
ou algo parecido. Verifique as páginas de manual dos comandos que você usa.