在 Bash 中检查命令是否成功

依据退出码分支,而不是解析输出文本。

macOSBash 脚本自动化Shell脚本低风险
使用 if 命令; then ...; fi 或 命令 || 兜底 来处理成功与失败。

01命令

命令
$ if ! grep -q "error" app.log; then echo "no errors"; fi

02作用说明

每个命令都返回退出码,shell 条件直接对其判断,脚本无需解析文本即可决策。用 grep -q 做无输出测试正是这种模式:安静、快速、可脚本化。

03风险

风险低风险
使用条件macOS default zsh/bash (bash 3.2+; some features need bash 4+ via Homebrew)
系统兼容性macOS with bash 3.2+ (GNU bash 4+ via Homebrew for advanced features)
!注意: set -e 与 if 交互微妙;条件中的失败命令在 errexit 下不会退出。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

最后验证: 2026-10-13 · 分类: 开发者