递增/递减主要用于循环中,其中用户指示脚本/程序根据给定条件递增/递减值。
和 bash 允许您以不同的方式增加或减少该值。
因此,在本教程中,我将解释三种方法:
- 使用
+
和-
操作员 - 使用
+=
和-=
操作员 - 使用
++
和--
操作员
所有的工作原理都是相同的,因此您可以为您的工作流程选择最佳的方法。
如何增加或减少变量 bash
递增和递减是使用双括号执行的算术运算 ((...))
和 $((...))
或者,您也可以使用内置函数 let
命令。
我知道这听起来太复杂,所以我将分享两者的语法,以便您可以选择最适合您的一个。
1. 使用+和-运算符
在我看来,这是递增和递减变量的最简单方法 bash。
那么让我们从语法开始。 如果您想使用双括号,请执行以下操作。
对于增量:
((i=i+1))
递减:
((i=i-1))
使用let命令
如果您想使用 let 命令而不是双括号,语法如下。
对于增量:
let "i=i+1"
递减:
let "i=i-1"
使用 + 和 – 运算符的示例
在本节中,我将提供递增和递减变量的示例。
这里我使用双括号语法来进行增量 example 而 let 给出递减命令。
增加一个变量:
在此示例中,我使用 Until 循环增加变量的值,直到达到 3 并在每次迭代时打印该值:
i=1
until [ $i -gt 3 ]
do
echo i: $i
((i=i+1))
done
输出应该如下所示:
减少一个变量:
在这里,我使用 let 命令而不是双括号,以便您大致了解如何使用两者。
在这个例子中,我使用它们直到迭代到值的循环 i
变量得到 5 或更少,直到那时 i
每个变量中减 2:
i=20
until [ $i -ge 5 ]
do
echo i: $i
let "i=i-2"
done
这是输出:
2. 运算符+=和-=的使用
所以如果你想使用它 +=
和 -=
使用运算符来递增和递减变量的值,在本节中我将向您展示两者的语法和示例。
让我们从双括号的语法开始。
对于增量:
((i+=1))
递减:
((i-=1))
使用let命令
如果您更喜欢使用 let 而不是双括号,以下是递增和递减语法:
对于增量:
let "i+=1"
递减:
let "i-=1"
现在让我们进入示例部分。
使用 += 和 -= 运算符的示例
在这一节我将分享一个 example 你如何使用这个 +=
和 -=
操作员。
另外,我使用双括号进行减量,使用“let”命令进行增量 example。
增加一个变量:
在此示例中,我使用了 while 循环来迭代 i
变量小于或等于 5:
i=1
while [ $i -lt 5 ]
do
echo i: $i
let "i+=1"
done
这是输出:
减少一个变量:
在里面 example 对于递减,我使用了 while 循环,它减少 5 并运行直到该值小于 2:
i=20
while [ $i -ge 2 ]
do
echo i: $i
((i-=5))
done
以下是将循环作为脚本运行后的输出:
3. ++ 和 — 运算符的使用
您可以使用前缀和后缀样式运算符。 那么我们来看看它们之间的区别:
- 字首: 如果您使用运算符作为前缀,例如
++var
递增变量的值,然后返回该值。 - 修复后: 如果您使用运算符作为后缀,例如
var++
首先返回变量的值,然后递增它。
那么,让我们从如何在双括号语法中计算这些运算符开始。
对于增量:
((i++)) #For postfix
((++i)) #For prefix
递减:
((i--)) #For postfix
((--i)) #For prefix
对于 let 命令语法
如果您像我一样喜欢使用 let 而不是双括号,那么这里是递增和递减的语法。
对于增量:
let "i++" #For postfix
let "++i" #For prefix
递减:
let "i--" #For postfix
let "--i" #For prefix
现在让我们进入示例部分。
使用 ++ 和 — 运算符的示例
这里我使用双括号语法进行增量,使用 Let 命令语法进行减量 example。
增加一个变量:
在这里,我将使用“循环”来增加该值,直到该值达到 5:
i=1
until [ $i -gt 5 ]
do
echo i: $i
((i++))
done
这是输出:
减少一个变量:
这里我使用 let 命令和 while 循环迭代,直到变量的值变为 5:
i=10
while [ $i -ge 5 ]
do
echo i: $i
let "--i"
done
这是输出:
想学习 bash 从一开始就?
如果你想学那个 bash 如果您想从头开始创建脚本,我们有一系列专门的文章,将涵盖所有基础知识,并为您的进步奠定坚实的基础:
我希望本指南对您有所帮助。 如果您有任何疑问,请随时在评论中提问。