Je sais que des utilitaires bien comportés comme grep envoient des messages "normaux" à stdout et des messages d'erreur à stderr.
$ grep '^foo' file1 file2
file1:foo
grep: file2: No such file or directory
Lorsque j'écris moi-même des scripts shell, j'ai souvent du mal à décider quelle sortie et quels messages je dois présenter sur stderr, ou si je devrais m'embêter du tout.
J'aimerais connaître les bonnes pratiques: quand rediriger un message vers stderr est-il nécessaire et raisonnable, et quand non?
"Cela dépend", bien sûr, mais avez-vous des idées qui pourraient m'aider à prendre ces décisions?
Afin d'adapter cette question subjective au format, je voudrais encourager des réponses qui répondent au "pourquoi", et qui sont éclairées par l'expérience et si possible appuyées par des faits.