← 全部文章

技术与生活 / 一篇记录

别通过“有没有输出”判断执行成功

有些命令成功时保持安静,有些失败时依然会输出部分结果。退出码提供了另一条独立信号,调用方应该先根据状态选择分支,再决定如何展示信息。

输出内容与执行是否成功应分别判断,退出码是脚本组合的重要契约。

实际怎么检查

以下示例使用 Bash,请在独立测试目录中理解输入、输出和退出码。

if test -f demo.conf; then printf 'found\n'; else printf 'missing\n'; fi

分别测试文件存在与不存在的分支。

遇到异常再检查什么

让同一个脚本分别面对存在和不存在的输入文件。如果失败分支之后还有打印语句,要检查脚本最终返回的是否仍然是失败状态。

如果脚本将外部命令包装成函数,函数也应把失败状态继续返回。否则一条成功的 echo 就可能覆盖前面的失败,让计划任务记录成功,而实际文件根本没有生成。

后续命令会覆盖 $?,需要时立即保存退出码。

参考:Shell 文档。

搜索文章

输入关键词,找回一篇记录。