Escrevendo para o erro padrão

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.