loopcount=1
loopmax=5
while [ $loopcount -le $loopmax ]
do
echo "loop iteration :$loopcount"
((loopcount=loopcount+1))
done
为了这个我要这样做
loop iteration :1
loop iteration :2
loop iteration :3
loop iteration :4
loop iteration :5
但如果我将程序((loopcount=loopcount+1))更改为(loopcount=loopcount+1),我将得到如下输出。
loop iteration :1
loop iteration :1
loop iteration :1
loop iteration :1
loop iteration :1
loop iteration :1
得到无限次。(和)的区别是什么?
最佳答案
(...)
意味着在子shell中运行给定的命令。((...))
意味着在parens中进行算术运算。
请注意,子shell不能更改父shell的变量,因此在您的示例中,永远不会更新父shell中loopcount的值。另外,在您的单paren示例中,您不会进行算术运算,而是将字符串loopcount+1
分配给变量loopcount
,这样,如果在之后执行printf "%s\n" "$loopcount"
,您将得到输出loopcount+1
关于linux - (loopcount = loopcount + 1)和((loopcount = loopcount + 1))有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35410464/