You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用--help参数的Bash脚本应返回0还是非0退出码?

当Bash脚本收到--help参数时,该返回什么退出码?

这事儿其实在脚本开发圈里一直有点小争议,不同工具生态的实践路子不一样,咱们来拆解两种选项的依据:

选项1:返回退出码0

这是更符合直观逻辑的主流实践,支持的论据有:

  • 任务成功的定义:用户主动输入--help请求帮助信息,脚本成功完成了“输出帮助内容”这个任务,没有发生任何错误,完全符合退出码0代表“执行成功”的基本定义。像bash、sh、vim这类常用工具都是这么做的,比如执行:
    $ bash --help; echo $?
    # 输出帮助内容...
    0
    
  • 参数合法性:--help属于脚本预先定义的合法参数,不是用户输入错误,脚本正常响应合法请求,理应返回成功状态码。

选项2:返回非0退出码

这种实践多见于部分Unix/Linux子生态,支持的论据有:

  • 传统工具的行为惯性:比如macOS下的grep、man工具,在收到--help参数输出帮助后会返回非0退出码。这类工具的设计逻辑是:用户运行工具的“核心目的”是执行其主要功能(比如grep的文本匹配、man的手册查询),而输出帮助只是一种“辅助提示”,并非完成核心任务,所以用非0表示“未执行核心功能”。
  • 调用场景的区分需求:如果你的脚本会被其他脚本调用,返回非0可以让调用者明确区分“脚本执行了核心业务逻辑”和“脚本输出了帮助信息”两种状态,方便后续流程判断。

个人建议

优先选择返回0,因为它更符合普通用户的直观预期——用户主动请求帮助,脚本完美响应了这个需求,没有理由返回错误码。但如果你的脚本需要和某个特定工具生态的行为对齐(比如要和macOS下的grep这类工具保持一致),也可以考虑返回非0。

内容的提问来源于stack exchange,提问作者Gabriel Petrovay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:33:26