Wiem, że dobrze zachowujące się narzędzia, takie jak grep, wysyłają „standardowe” komunikaty do standardowego wyjścia, a komunikaty o błędach do standardowego.
$ grep '^foo' file1 file2
file1:foo
grep: file2: No such file or directory
Kiedy sam piszę skrypty powłoki, często trudno mi zdecydować, jakie dane wyjściowe i jakie komunikaty powinienem przedstawić na stderr, czy też powinienem w ogóle się tym przejmować.
Chciałbym wiedzieć o dobrych praktykach: kiedy przekierowanie jakiejś wiadomości do stderr jest wymagane i uzasadnione, a kiedy nie?
„To zależy”, jasne, ale czy masz jakieś spostrzeżenia, które pomogłyby mi w podjęciu tych decyzji?
Aby dostosować to subiektywne pytanie do formatu, chciałbym zachęcić do odpowiedzi, które odnoszą się do „dlaczego”, i są informowane przez doświadczenie i, jeśli to możliwe, poparte faktami.