将变量值增加1(shell 编程)

我似乎无法将变量值增加1。我已经看了 教程 Unix/Linux Shell Programming 教程,但它只显示了如何将两个变量相加。

我试过以下方法,但都不管用:

i=0


$i=$i+1 # doesn't work: command not found


echo "$i"


$i='expr $i+1' # doesn't work: command not found


echo "$i"


$i++ # doesn't work*, command not found


echo "$i"

如何将变量的值增加1?

178730 次浏览

你可以这样使用 算术扩展:

i=$((i+1))

声明 i作为整数变量,并使用 +=运算符来递增其值。

declare -i i=0
i+=1

或使用 ((结构

((i++))

这些是我知道的方法:

ichramm@NOTPARALLEL ~$ i=10; echo $i;
10
ichramm@NOTPARALLEL ~$ ((i+=1)); echo $i;
11
ichramm@NOTPARALLEL ~$ ((i=i+1)); echo $i;
12
ichramm@NOTPARALLEL ~$ i=`expr $i + 1`; echo $i;
13

注意上一个示例中的空格,也注意这是唯一使用 $i的空格。

使用 expr 的方法:

i=0
i=`expr $i + 1`

使用 i + + 的方法(除非使用 ABC0/-o errexit) :

((i++)); echo $i;

在 nu bash 测试过。

你可以使用 bc,因为它也可以做浮动

var=$(echo "1+2"|bc)