20|DeepSeek Harness版本检查只输出了一半,为什么脚本还会提前退出?

发布时间:2026/11/6 3:50:13
20|DeepSeek Harness版本检查只输出了一半,为什么脚本还会提前退出?

版本检查通常分两步:先收集包、接口和配置的检查结果,再逐项解释结果。前半段打印齐了,不代表后半段已经执行完。一个负责显示提示的函数,也可能把“无需提示”变成非零返回,导致调用它的循环提前结束。

这篇只解决这个问题:如何区分条件没满足、函数失败,以及脚本有没有走到最后。示例用普通检查项说明控制流,不需要启动Harness,也不会修改安装目录。

1. 先把两个看起来相同的写法跑一遍

在Bash里执行:

bash-c'set -e; [ 1 = 0 ] && echo notice; echo tail'

结果是tail,退出码为0。条件为假时,&&右侧不会执行;这里左侧失败属于errexit的例外,脚本继续。因此,“set -e下&&左侧失败必然退出”这个解释不成立。

现在把这一行放进函数,并让它成为函数的最后一条命令:

bash