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

如何在一行代码中检测命令的退出码是否等于指定值?

替代Bash中先运行命令再检查特定退出码的等价写法

原始代码需先执行命令,再通过$?单独检查退出码是否为2:

diff a.txt b.txt
if [ $? = 2 ]; then
  echo diff failed
  exit 2
fi

以下是无需单独获取$?的等价写法,直接将命令执行与退出码检查结合:

写法一:分支判断式

if diff a.txt b.txt; then
    # 退出码为0时无需操作,用:占位
    :
elif [ $? -eq 2 ]; then
    echo diff failed
    exit 2
fi

写法二:紧凑逻辑式

diff a.txt b.txt || { [ $? -eq 2 ] && { echo diff failed; exit 2; }; }

本问题与同类问题的区别

本问题核心是检查命令退出码是否等于特定非0值(2),而非通用的“退出码是否为0(命令是否成功)”判断,因此与仅关注成功/失败的相关问题场景不同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 15:30:53