Eu sei que utilitários bem comportados, como grep , saem mensagens "normais" para stdout e mensagens de erro para stderr.
$ grep '^foo' file1 file2
file1:foo
grep: file2: No such file or directory
Quando estou escrevendo scripts de shell, geralmente acho difícil decidir qual saída e quais mensagens devo apresentar no stderr ou se devo me preocupar.
Gostaria de saber sobre as boas práticas: quando o redirecionamento de alguma mensagem para o stderr é necessário e razoável e quando não?
"Depende", claro, mas você tem algumas idéias que me ajudariam a tomar essas decisões?
Para que essa pergunta subjetiva se encaixe no formato, gostaria de incentivar respostas que abordem o "porquê" e sejam informadas pela experiência e, se possível, apoiadas por fatos.