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

时间:2014-01-10 02:21:13

标签: shell debugging variables ubuntu command-line

我是shell编程的初学者,它听起来像一个非常愚蠢的问题,但我似乎无法将变量值增加1.我看了tutorial但它只显示了如何一起添加2个变量

我尝试了以下方法,但它不起作用

i=0

$i=$i+1 # doesnt work , command not found

echo "$i"

$i='expr $i+1' # doesnt work , command not found

echo "$i"

$i++ # doesnt work , command not found

echo "$i"

如何将变量值增加1?

5 个答案:

答案 0 :(得分:33)

你可以试试这个:

i=0
i=$((i+1))

答案 1 :(得分:9)

在bash中增加变量的方法不止一种,但你尝试的方法不正确。

您可以使用例如算术扩展:

i=$((i+1))

或仅限:

((i=i+1))

或:

((i+=1))

甚至:

((i++))

或者您可以使用let:

let "i=i+1"

或仅限:

let "i+=1"

甚至:

let "i++"

另请参阅:http://tldp.org/LDP/abs/html/dblparens.html

答案 2 :(得分:4)

使用expr的方法:

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

使用i ++的方式

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

在gnu bash中测试

答案 3 :(得分:0)

这些是我所知道的方法:

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的空格。

答案 4 :(得分:0)

您可以使用bc,因为它也可以使用浮点数

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