如何在Bash中增加和减少变量(计数器)
时间:2020-03-05 15:31:37 来源:igfitidea点击:
编写Bash脚本时,最常见的算术运算之一是递增和递减变量。
这通常在循环中用作计数器,但是它也可以在脚本的其他位置发生。
递增和递减表示分别从数字变量的值中加上或者减去一个值(通常为'1')。
可以使用双括号“((...))”和“ $((...))”或者内置命令“ let”来执行算术扩展。
在Bash中,有多种增加或者减少变量的方法。
本文介绍了其中一些。
使用'+'和'-'运算符
最简单的递增/递减变量的方法是使用'+'和'-'运算符。
i=$((i+1)) ((i=i+1)) let "i=i+1"
i=$((i-1)) ((i=i-1)) let "i=i-1"
此方法允许我们将变量增加/减少所需的任何值。
这是在“直到”循环内递增变量的示例:
i=0 until [ $i -gt 3 ] do echo i: $i ((i=i+1)) done
i: 0 i: 1 i: 2 i: 3
'+ ='和'-='运算符
除了上面介绍的基本运算符外,bash还提供了赋值运算符'+ ='和'-='。
这些运算符用于用运算符后指定的值递增/递减左操作数的值。
((i+=1)) let "i+=1"
((i-=1)) let "i-=1"
在下面的“ while”循环中,我们将“ i”变量的值减“ 5”。
i=20 while [ $i -ge 5 ] do echo Number: $i let "i-=5" done
Number: 20 Number: 15 Number: 10 Number: 5
使用'++'和'-'运算符
“ ++”和“-”运算符分别将其操作数递增和递减“ 1”并返回值。
((i++)) ((++i)) let "i++" let "++i"
((i--)) ((--i)) let "i--" let "--i"
运算符可以在操作数之前或者之后使用。
它们也被称为:
- 前缀增量:“ ++ i”
- 前缀减量:“-i”
- 后缀增量:“ i ++”
- 后缀减量:“ i--”
前缀运算符首先将运算符加/减'1',然后返回运算符的新值。
另一方面,后缀运算符在递增或者递减之前返回运算符的值。
如果只想增加/减少变量,则使用前缀或者后缀运算符没有区别。
仅当将运算符的结果用于某些其他运算或者分配给另一个变量时,它才有所不同。
以下示例演示了在操作之前和之后使用“ ++”运算符的方式:
x=5 y=$((x++)) echo x: $x echo y: $y
x: 6 y: 5
x=5 y=$((++x)) echo x: $x echo y: $y
x: 6 y: 6
以下是在bash脚本中如何使用后缀递增器的示例:
#!/bin/bash i=0 while true; do if [[ "$i" -gt 3 ]]; then exit 1 fi echo i: $i ((i++)) done
使用这些运算符的缺点是变量只能以'1'递增或者递减。