Я знаю, що добре керовані утиліти, такі як grep виводять "звичайні" повідомлення в stdout, а повідомлення про помилки - stderr.
$ grep '^foo' file1 file2
file1:foo
grep: file2: No such file or directory
Коли я сам пишу сценарії оболонок, мені часто важко вирішити, який вихід і які повідомлення я повинен представляти на stderr, або якщо я взагалі повинен турбуватися.
Я хотів би знати про хорошу практику: коли перенаправлення якогось повідомлення на stderr вимагається і розумне, а коли ні?
"Це залежить", звичайно, але чи маєте ви якусь думку, яка допомогла б мені прийняти ці рішення?
Для того, щоб це суб'єктивне запитання підходило до формату, я хотів би заохочувати відповіді, які стосуються питання "чому", і вони інформуються досвідом і, якщо можливо, підкріпленими фактами.