我知道行为良好的实用程序,例如grep,会将“正常”消息输出到stdout,将错误消息输出到stderr。
$ grep '^foo' file1 file2
file1:foo
grep: file2: No such file or directory
当我自己编写shell脚本时,我经常发现很难决定应该在stderr上显示什么输出和哪些消息,或者是否应该打扰。
我想了解一种良好的做法:什么时候将某些消息重定向到stderr是合理的,什么时候不可行?
当然,“取决于情况”,但是您是否有一些见解可以帮助我做出这些决定?
为了使这个主观问题适合格式,我想鼓励回答“为什么”的答案,并以经验为基础,并在可能的情况下以事实为依据。
@rush完美地说明了这一点。我通常将进度报告打印到stderr以获取长脚本。
—
terdon