了解如何在 Shell 脚本中使用 Bash For 循环
在编程语言中,循环是必不可少的组件,当您想要一遍又一遍地迭代代码直到达到所需状态时,就会使用循环。
在 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 循环的教程。希望您觉得这篇文章很有见地。请随意评估您的评论。