UNIX shell:使用最后返回的退出代码的值递增变量

UNIX shell: increment a variable with value of last returned exit code

假设我有一个由 counter=0

初始化的计数器

现在我想运行一个命令并通过返回的退出代码增加计数器的值。

用自然语言我想做counter = $counter + $?

我正在尝试 counter=$((counter+$((?)))); 但没有成功。在一行中完成它的正确方法是什么?

与bash我建议:

counter=$(($counter + $?))

这也是可以的:

counter=$((counter + $?))

或者:

declare -i counter=0     # set integer attribute
<your command>
counter=counter+$?

或者:

declare -i counter=0
<your command>
counter=+$?

您可以将 $? 的值赋给一个中间变量,然后使用算术上下文添加:

$? 设置为 22:

$ awk 'BEGIN {exit 22}'
$ rtr=$?
$ counter=1
$ echo $((counter+rtr))
23

在 UNIX 中您可以尝试: 计数器=1; 计数器=expr $counter + 1; 回显 $counter;

注:expr $counter + 1在‘+’两边有space