编写一个bash脚本,在使用--help
参数调用时显示用法信息,建议退出/退出脚本的退出代码是什么?
$ my_script --help; echo $?
Usage ...
0
或
$ my_script --help; echo $?
Usage ...
1
如果有不同的意见,一个或其他选项的论据是什么?
grep
(在MacOS上),man
返回非零退出代码。bash
,sh
,vim
返回0作为退出代码。答案 0 :(得分:5)
输出应转到stdout
,除非出现IO错误,否则脚本应返回0。 (用户请求帮助屏幕并且您已交付。操作成功。)
如果输出相同的帮助屏幕作为对错误使用的响应,则将其输出到stderr
并失败(=以非零退出)。
(用户尝试做某事但他们做错了 - 操作失败了,你通过stderr
给他们一个提示(因为在stdout
,他们可能会期待别的东西)如何正确地做到这一点。)
我认为这些是良好而合理的做法,而且我见过的大多数优秀的CLI工具都遵循它们。
(这包括我的Linux Mint' grep
,man
和ping
,但需要注意的是ping
抱怨没有帮助选项,但它确实如此与此建议的第2段一致。)
答案 1 :(得分:1)
零是正确的返回码,因为命令运行成功,这是返回码0的含义。