Bash 帖子增量中止脚本执行

  • 本文关键字:脚本 执行 Bash linux bash
  • 更新时间 :
  • 英文 :


运行bash -e

round=0
((round++))
echo "Done"

不会显示Done。为什么?设置后递增-e如何使用后递增?

请看一些例子:

round=0
((round++))
echo $?
round=1
((round-1))
echo $?
((0))
echo $?

在所有情况下,$?返回 1。

Bash手册页指出:

(

(表达式((表达式
根据下面描述的规则进行计算 算术评估。如果表达式的值不为零,则 返回状态为 0;否则返回状态为 1。 这正是 相当于让"表达"。

如果设置了-e选项,则脚本将退出,因为:

-e
如果管道立即退出(这可能 由单个简单命令组成(,一个 列表或复合命令(请参阅 SHELL 上面的语法(,以非零状态退出。...

您可以通过为算术计算结果分配变量来避免终止:

set -e
round=0
dummy=$((round++))
echo "Done"

希望这有帮助。

最新更新