'app --help'应该去stdout还是stderr?

时间:2009-07-01 08:45:40

标签: shell command-line-interface stdout stderr

我认为stdout,所以你可以轻松地说,你觉得怎么样?

5 个答案:

答案 0 :(得分:10)

只有错误发送到stderr。这绝不是一个错误,它完全符合用户的想法,即打印使用信息。

答案 1 :(得分:5)

始终是标准输出,可以更轻松地管道减少,使用它等等。

如果您显示帮助文本,因为解析命令行参数时出现问题,那么您可以使用stderr。

答案 2 :(得分:5)

嗯,这是一个明确的求助请求,所以它是输出。如果由于某种原因您无法输出帮助或用户误解“帮助”,那么,无论如何,将其发送到错误: - )

知道他们正在做什么的用户可以使用臭名昭着的"2>&1",如果他们想要标准输出上的错误。

答案 3 :(得分:1)

这不是错误,所以我会说stdout ....

答案 4 :(得分:-1)

netcat 是我能想到的唯一一个将-h重定向到stderr的应用程序,而我无法理解为什么会这样做。

我想如果你输出的是帮助信息,因为有人使用了不正确的参数,你可能想把它重定向到stderr,但即便如此,我也不会使用stderr,因为我不认为垃圾邮件错误日志有完整的帮助文本是有用的 - 我只是输出一个错误,指出参数格式错误到stderr。如果有人使用-h或--help明确调用您的应用程序,那么您真的不应该将其重定向到stderr。