我认为应该使用标准输出(stdout),这样你可以轻松地使用grep,你觉得呢?
我认为应该使用标准输出(stdout),这样你可以轻松地使用grep,你觉得呢?
stdout
如果用户在使用--help
参数时请求它,例如,可以更容易地将其导入到less、grep等命令中。
stderr
如果您显示帮助文本的原因是出现问题,例如解析命令行参数。
--help
情况下"应该"使用stderr:如果您显示帮助文本是因为存在使用问题,您不希望将该使用消息与输出混合在一起(输出可能正在发送到文件、管道或其他操作员无法看到的地方)。 - Charles Duffy只有错误才会发送到 stderr
。这并不是一种错误,它恰好完成了用户的意图,也就是打印使用信息。
--help
运行程序时,使用说明消息是预期的输出,所以它应该在stdout上显示。 - Charles Duffy这不是一个错误,所以我会说stdout....
--help
调用时,使用说明消息就成了预期的输出;所以将其放在标准输出流(stdout)是正确的做法,但推理过程有误。 - Charles Duffynetcat 是我能想到唯一一个会将 -h 重定向到 stderr 的应用程序,但我无法理解为什么。
我想,如果您正在输出帮助信息,因为有人使用了不正确的参数,您可能希望将其重定向到 stderr,但即使在这种情况下,我也不会使用 stderr,因为我认为在错误日志中垃圾邮件错误日志与完整的帮助文本是没有用的 - 我宁愿只输出一个指出参数格式不正确的单个错误到 stderr。如果有人明确使用 -h 或 --help 调用您的应用程序,则真的不应将其重定向到 stderr。
stderr
。这就是Unix期望的一切。 - mirabilos