Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell ';应用程序--帮助';应该去stdout还是stderr?_Shell_Command Line Interface_Stdout_Stderr - Fatal编程技术网

Shell ';应用程序--帮助';应该去stdout还是stderr?

Shell ';应用程序--帮助';应该去stdout还是stderr?,shell,command-line-interface,stdout,stderr,Shell,Command Line Interface,Stdout,Stderr,我认为stdout,所以您可以轻松地grep,您认为如何?始终stdout,使管道更容易传输到less,grep it等 如果您显示帮助文本是因为解析命令行参数时出现问题,那么您可能会使用stderr。这不是错误,所以我要说stdout….嗯,这是一个明确的帮助请求,因此是输出。如果出于某种原因,您无法输出帮助或用户拼写错误“help”,请务必将其发送到错误:-) 知道自己在做什么的用户可以使用臭名昭著的“2>&1”,如果他们希望标准输出出现错误。只有错误才能转到标准输出。这绝不是一个错误,它完

我认为stdout,所以您可以轻松地grep,您认为如何?

始终stdout,使管道更容易传输到less,grep it等


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

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

嗯,这是一个明确的帮助请求,因此是输出。如果出于某种原因,您无法输出帮助或用户拼写错误“help”,请务必将其发送到错误:-)


知道自己在做什么的用户可以使用臭名昭著的
“2>&1”
,如果他们希望标准输出出现错误。

只有错误才能转到
标准输出。这绝不是一个错误,它完全符合用户的想法,即打印使用信息。

netcat是我能想到的唯一一个将-h重定向到stderr的应用程序,我终生无法理解为什么


我想如果您输出帮助信息是因为有人使用了不正确的参数,您可能希望将其重定向到stderr,但就个人而言,即使这样,我也不会使用stderr,因为我不认为用完整的帮助文本发送错误日志是有用的——我宁愿只输出一个错误,指出参数的格式不正确。如果有人使用-h或--help显式调用您的应用程序,那么您真的不应该将其重定向到stderr。

好吧,(s)他特别说了“app--help”,所以我假设--help”被识别为命令行参数。我只是建议您可以向stderr
stderr
发送帮助。这就是Unix中的所有内容所期望的。可能是正确的;-)