Sé que las utilidades con buen comportamiento como grep generan mensajes "normales" a stdout y mensajes de error a stderr.
$ grep '^foo' file1 file2
file1:foo
grep: file2: No such file or directory
Cuando escribo scripts de shell, a menudo me resulta difícil decidir qué salida y qué mensajes debo presentar en stderr, o si debo molestarme.
Me gustaría saber acerca de las buenas prácticas: ¿cuándo es razonable y razonable enviar un mensaje a stderr y cuándo no?
"Depende", claro, pero ¿tiene alguna idea que me ayudaría a tomar estas decisiones?
Para que esta pregunta subjetiva se ajuste al formato, me gustaría alentar respuestas que aborden el "por qué", y que estén informadas por la experiencia y, si es posible, respaldadas por hechos.