本文介绍在Bash中增加和减少变量(计数器)的方法,可应用在Linux平台上。编写Bash脚本时最常见的算术运算之一是增加和减少变量,这通常在循环中用作计数器,但它也可以在脚本的其他地方出现。增加和减少意味着分别从数值变量的值中添加或减去值(通常为1),可以使用双括号((...))和$((...))或let内置命令命令执行算术扩展。在Bash中,有多种方法可以增加/减少变量,本文为你做介绍。
使用+和-运算符
增加/减少变量的最简单方法是使用+和-运算符:
i=$((i+1))
((i=i+1))
let "i=i+1"
和:
i=$((i-1))
((i=i-1))
let "i=i-1"
此方法允许你将变量递增/递减所需的任何值。
以下是在until循环中递增变量的示例:
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"
可以在操作数之前或之后使用运算符,它们也被称为:
1、前缀增量:++i
2、前缀减量:--i
3、后缀增量:i++
4、后缀减量:i--
前缀运算符首先将运算符递增/递减1,然后返回运算符的新值,另一方面,后缀运算符在递增/递减之前返回运算符的值。
如果你只想增加/减少变量,那么如果你使用前缀或后缀运算符则没有区别,只有在某些其他操作中使用运算符的结果或将其分配给另一个变量时,它才会有所不同。
以下示例演示了++运算符在其operant之前和之后使用时的工作方式:
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脚本中使用postfix incrementor的示例:
#!/bin/bash
i=0
while true; do
if [[ "$i" -gt 3 ]]; then
exit 1
fi
echo i: $i
((i++))
done
使用这些运算符的缺点是变量只能递增或递减1。
结语
在Bash中的变量的增加和减少可以有许多不同的方式执行,但是不管使用哪种方法,结果都是一样的。
相关主题