在 Bash 中增加或减少计数器的不同方法

递增/递减主要用于循环中,其中用户指示脚本/程序根据给定条件递增/递减值。

和 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 如果您想从头开始创建脚本,我们有一系列专门的文章,将涵盖所有基础知识,并为您的进步奠定坚实的基础:

我希望本指南对您有所帮助。 如果您有任何疑问,请随时在评论中提问。