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
假设我有一个由 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