了解如何在 Shell 脚本中使用 Bash For 循环

言鼎科技 2023-07-12 245

在编程语言中,循环是必不可少的组件,当您想要一遍又一遍地迭代代码直到达到所需状态时,就会使用循环。


在 Bash 脚本中,循环起着与编程语言中相同的作用,用于自动执行重复任务。


在 Bash 脚本中,有 3 种类型的循环:for 循环、while 循环和until 循环。三元组用于迭代值列表并执行给定的命令集。


在本指南中,我们将重点介绍 Linux 中的 Bash For Loop。


如前所述,for 循环迭代不同的值并执行一组命令。



For 循环采用以下语法:


对于 value1 value2 value3 .. n 中的变量名

穿

    命令1

    命令2

    命令

完毕

现在让我们看一下 bash for 循环的一些示例用法。


循环中的慢速打击

最简单的 For 循环采用以下基本形式。在此示例中,变量n返回基于括号的数值数组,并将其值打印到 stdout。


对于 {1234567} 中的 n;

穿

   回显$n

完毕


Bash For 循环和范围

在前面的示例中,我们通过 for 循环显式输入要返回的值,效果很好。但你只能想象,如果你迭代一百个值,那将是多么费力和耗时。这会强制您输入 1 到 100 之间的所有值。


要解决此问题,请指定长度。为此,请以双空格指定起始编号和终止编号。


在此示例中,1 是该范围中的第一个值,而 7 是最后一个值。


#!/bin/bash


对于 {1..7} 中的 n;

穿

   回显$n

完毕

一旦执行了 shell 脚本,该范围内的所有值都会被写入,就像我们在简单循环中所使用的那样。



此外,我们可以在范围末尾分配一个值,使 for 循环以增量步骤迭代这些值。


以下 bash 脚本打印 1 到 7 之间的值,从第一个值开始,值之间有 2 个增量步骤。


#!/bin/bash


对于 {1..7..2} 中的 n;

穿

   回显$n

完毕


在上面的示例中,您可以看到循环将大括号中的值增加了 2 个值。


Bash For 循环和数组


您还可以使用 For 循环轻松地使用数组中显示的值进行迭代。在下面的示例中,for 循环迭代fruits 数组中的所有值并将它们打印到stdout。


#!/bin/bash


水果=(“蓝莓”“桃子”“芒果”“菠萝”“木瓜”)


对于 ${fruits[@]} 中的 n;

穿

    回显$n

完毕


@操作员看到或瞄准所有对象。这允许单独重复所有项目。


此外,您可以通过指定数组中的位置来访问单个对象。


例如,要访问“mango”组件,请将@员工替换为该组件在组中的位置(第一个元素以 0 开头,因此在本例中“mango”将由 2 表示)。


因此 for 循环。


#!/bin/bash


水果=(“蓝莓”“桃子”“芒果”“菠萝”“木瓜”)


对于 ${fruits[2]} 中的 n;

穿

    回显$n

完毕


C 风格的 Bash In 循环

您可以使用循环中的更改来迭代不同的对象。这就是 C 风格的 for 循环的用武之地。以下示例显示了 C 风格的 for 循环,该循环打印从 1 到 7 的数字列表。


#!/bin/bash


n=7

for (( n=1 ; n<=$n ; n++ ));

穿

    回显$n

完毕


Bash C 风格的 For 循环和条件语句

您可以在 C 风格的 for 循环中包含条件表达式。在下面的示例中,我们包含一个 if-else 语句,用于检查 1 到 7 之间的偶数和奇数并将其取出。


#!/bin/bash


对于 (( n=1; n<=7; n++ ))

穿  

    # 检查数字是否为偶数

    如果 (( $n%2==0 ))

    然后

        echo "$n 是偶数"

    别的

        echo "$n 是奇数"

    偷  

完毕


将“Continue”语句与 Bash For 循环结合使用

“Continue”语句是控制脚本执行方式的内置命令。除了 bash 脚本之外,它还用于 Python 和 Java 等编程语言。


Continuation 语句在满足某个条件时停止循环中的当前迭代,然后再次开始迭代。


考虑下面所示的 for 循环。


#!/bin/bash

对于 {1..10} 中的 n

穿

        如果 [[ $n -eq

        然后

              echo "已达到目标$n"

              继续

        偷

        回显$n

完毕



这就是代码的作用:


第 2 行:标记 for 循环的开始并返回从 1 到 10 的 n 个变量。

第 4 行:检查 n 的值,如果变量等于 6,则脚本向 stdout 返回一条消息,并在 2 行中的下一次迭代时重新启动循环。

第 9 行:仅当第 4 行的条件为 false 时才在屏幕上打印值。

以下是运行脚本后的预期输出。



将“break”语句与 Bash For 循环结合使用

顾名思义,“break”语句在满足条件时停止或终止。


考虑下面的 For 循环。


#!/bin/bash

对于 {1..10} 中的 n

穿

        如果 [[ $n -eq

        然后

                echo "已达到目标$n"

                休息

        偷

        回显$n

完毕

回声“全部完成”


这就是代码的作用:


第 2 行:标记 for 循环的开始并返回从 1 到 10 的 n 个变量。

第 4 行:获取 n 的值,如果该变量等于 6,则脚本向 stdout 重复一条消息并停止重复。

第 9 行:仅当第 4 行中的条件为 false 时才在屏幕上打印数字。

从输出中,您可以看到一旦变量达到循环状态,循环就会停止。



这是关于 Bash For 循环的教程。希望您觉得这篇文章很有见地。请随意评估您的评论。

言鼎科技

The End