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

如何让Grunt CLI仅返回退出码以用于Shell脚本条件判断?

关于Shell脚本中捕获Grunt命令退出码的实现方案

当然可以这么写!你的思路完全是正确的,而且我可以给你补充一些实用细节,帮你更灵活地实现需求:

基础实现:捕获退出码并判断

你给出的代码框架是可行的,不过还有更简洁的写法。Shell中,命令执行后的退出码会自动存在$?变量里,同时if语句可以直接判断命令的执行结果(退出码为0则视为成功):

方式一:用变量存储退出码

# 执行grunt任务,这里可以替换成你的具体grunt命令
grunt build
GRUNT_EXIT_CODE=$?

# 根据退出码执行后续逻辑
if [[ $GRUNT_EXIT_CODE -eq 0 ]]; then
    echo "Grunt任务执行成功!"
    # 这里可以添加成功后的操作,比如部署文件、发送通知等
else
    echo "Grunt任务执行失败,退出码:$GRUNT_EXIT_CODE"
    # 失败后的操作,比如终止脚本、记录错误日志等
fi

方式二:直接在if中判断命令结果(更简洁)

if grunt build; then
    echo "Success"
    # 成功操作
else
    echo "Failure"
    # 失败操作
fi

让Grunt仅输出退出码(抑制冗余输出)

如果你想让Grunt只返回退出码,不输出任何日志信息,可以通过重定向标准输出和错误输出到/dev/null来实现:

# 抑制所有输出,只保留退出码
grunt build > /dev/null 2>&1
GRUNT_EXIT_CODE=$?

if [[ $GRUNT_EXIT_CODE -eq 0 ]]; then
    echo "Success"
else
    echo "Failure"
fi

或者结合简洁写法:

if grunt build > /dev/null 2>&1; then
    echo "Success"
else
    echo "Failure"
fi

可选:保留错误输出以便调试

如果希望成功时静默,失败时显示错误信息方便排查,可以只重定向标准输出,保留标准错误:

if grunt build > /dev/null; then
    echo "Success"
else
    echo "Failure: 错误信息如下:"
    # 此时Grunt的错误日志已经输出到终端了
fi

内容的提问来源于stack exchange,提问作者Chris at Keddy Digital

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 05:02:38