Bash:
Escrevendo para o erro padrão
Como fazer:
No Bash, você usa >&2
para redirecionar a saída para stderr. Aqui está um exemplo básico:
echo "Esta é uma mensagem normal"
echo "Esta é uma mensagem de erro" >&2
Ao executar este script, ambas as mensagens serão exibidas no console, mas se você redirecioná-las, pode separar o stdout do stderr. Por exemplo:
bash script.sh > output.txt 2> error.txt
output.txt
conterá "Esta é uma mensagem normal"
, enquanto error.txt
capturará "Esta é uma mensagem de erro"
.
Para um caso de uso prático, considere um script que processa arquivos e relata um erro se um arquivo não existir:
filename="exemplo.txt"
if [ ! -f "$filename" ]; then
echo "$filename não existe!" >&2
exit 1
else
echo "Processando $filename"
fi
Saída de amostra diretamente no console quando exemplo.txt
não existir:
exemplo.txt não existe!
Não existem bibliotecas de terceiros diretas no Bash para manipulação de stderr, já que o redirecionamento é nativamente suportado e geralmente suficiente. No entanto, para aplicações complexas, frameworks de registro ou ferramentas de registro externas como syslog
ou log4bash
podem ser incorporadas para gerenciar tanto o stdout quanto o stderr de forma mais eficaz.