将变量值增加1(shell编程)
我是一名shell编程的初学者,这听起来像是一个非常愚蠢的问题,但我似乎无法将变量值增加1。我已经看过了,但它只显示了如何将两个变量相加 我尝试过以下方法,但不起作用:将变量值增加1(shell编程),shell,debugging,variables,ubuntu,command-line,Shell,Debugging,Variables,Ubuntu,Command Line,我是一名shell编程的初学者,这听起来像是一个非常愚蠢的问题,但我似乎无法将变量值增加1。我已经看过了,但它只显示了如何将两个变量相加 我尝试过以下方法,但不起作用: 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*, com
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??您可以使用类似的方法:
或i
作为整数变量,并使用+=
运算符递增其值
declare -i i=0
i+=1
或者使用
以下是我知道的方法:
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
请注意上一个示例中的空格,还请注意,这是唯一一个使用expr使用方式的空格:
i=0
i=`expr $i + 1`
使用i的方法++
((i++)); echo $i;
在gnubash中测试您可以使用
bc
,因为它也可以进行浮点运算
var=$(echo "1+2"|bc)
在bash中增加变量的方法不止一种,但您尝试的方法并不正确 例如,您可以使用算术展开:
i=$((i+1))
或仅:
((i=i+1))
let "i+=1"
或:
甚至:
((i++))
let "i++"
或者您可以使用let:
let "i=i+1"
或仅:
((i=i+1))
let "i+=1"
甚至:
((i++))
let "i++"
另请参见:.变量赋值在表达式的LHS上没有前导的
$
字符。对于expr one,它不起作用,因为它们必须是反勾(`)而不是单引号(')(仅显示如何将两个变量相加
-好吧,它们显示了一个文本总和的赋值:val=`expr 2+2`
)使用/bin/bash-e
((i++)
停止执行(退出代码1)。使用/bin/sh-e
((i=i+1))
无效,((i++=1))/code>)和((i++)是不允许的。并且let
是。是的,((i++)
返回1,因此返回代码是1。或者可能是因为i
如果未初始化(并在单个命令中运行)就不存在?