如何在Bash中增加和减少变量(计数器)
编写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"
运算符可以在操作数之前或之后使用。 它们也被称为:
- 前缀增量:
++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
。
结论#
Bash中的变量增减可以用许多不同的方式执行。 无论使用哪种方法,结果都是相同的。
如果您有任何疑问或反馈,请随时发表评论。
bash循环终端