添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Bash 嵌套 For 循环


循环是许多语言中使用的数据结构,用于迭代执行某些任务,即重复执行直到实现实际目标。编程的众多循环之一是“For”循环。 “for”循环可以单独使用,序列中多个“for”循环被称为“嵌套”。因此,我们决定在今天文章的示例中使用 Bash 编程中的“嵌套”for 循环。那么,我们首先在 Ubuntu 20.04 系统中通过“Ctrl+Alt+T”快捷键打开终端 shell。

示例 01:简单的 For 循环

在终端 shell 中,我们将使用“touch”指令创建一个名为“bash.sh”的新 Bash 文件。该文件将在我们系统的主目录中创建。该文件需要在某些编辑器(例如 nano、vim 或文本)中打开才能向其中添加代码。因此,我们按照 shell 中下面所示的 nano 指令,在“nano”编辑器中从主文件夹中打开这个新创建的文件,后跟文件名。

$ touch bash.sh
$ nano bash.sh

我们在 Bash 文件中添加了 bash 扩展名“#!/bin/bash”。简单的“for”循环是用双“simple”括号开始的,如下所示。该循环以值 1(变量“I”)开始,并将一直持续到该值等于 5。在每次迭代中,增量运算符也用于将变量“I”的值增加 1。 “for”循环的“do”部分显示在此处。在每次迭代中,“do”部分将被执行,并且 echo 语句将使用其中的“$i”显示迭代编号。术语“完成”表示循环的结束。让我们保存 Bash 代码以供执行。按 Ctrl+X 退出。代码附在这里。

运行这个 Bash 文件时,我们已经在 shell 上打印了所有迭代次数。输出显示在所附图像中。

$ bash bash.sh

示例 02:嵌套 For 循环

现在让我们从嵌套 for 循环开始。为此,我们需要在 Bash 代码中按顺序添加两个“for”循环。因此,我们打开了相同的文件并更新了代码,如下所示。两个“for”循环都将从 1 开始,以值 3 结束,增量为 1。在第一次执行外循环时,内循环将完全执行,即最多三个值。在外层循环的下一次迭代中,内层“for”循环将再次执行 3 次,直到值 3,依此类推,最后一次迭代也是如此。内循环将重复9次,而外循环将以这种方式运行3次。在内循环完全执行 3 次之前,外循环无法进入下一个增量。内部循环将负责使用“do”子句中的“echo”语句显示外部循环和内部循环的迭代次数。两个循环都已通过“done”结束。代码附在这里。

在使用 Bash 命令执行此更新的代码时,我们已经执行了内部循环 9 次,即外部循环的每次迭代执行 3 次。输出显示在所附图像中。

$ bash bash.sh

示例 03:一行嵌套 For 循环

嵌套的“for”循环也可以在 Bash 代码中单行使用。因此,我们在 Nano 编辑器中打开相同的 Bash 文件后更新了该文件,如下所示。对于第一个“for”循环,我们使用了值 x、y 和 z。对于内部“for”循环,我们使用了三个数字 1、3 和 5。在“do”语句中,将显示内部和外部循环迭代值。两个循环都使用如下所示的“done”子句结束。代码附在这里。

运行这段 1 行代码时,我们显示了以下输出。对于外循环的每个值,内循环将执行到其三个值,即 1、3、5。输出显示在所附图像中。

$ bash bash.sh

示例 04:嵌套 For 循环

让我们再举一个例子来说明嵌套“for”循环的工作原理。这次,我们使用外循环从 1 到 10 总共进行了 10 次迭代。在这个循环中,使用了另一个“for”循环。内部“for”循环一直利用“seq”函数来创建任何字符乘以外部循环的迭代值的序列。这意味着外循环的值将决定 shell 上显示的字符数量。在内部循环中,我们使用带有“-n”标志的“echo”语句来测试要插入到语句中的下一个字符串是某个字符还是空。添加了字符“*”作为要乘以迭代次数的值。第一个“for”循环结束,另一个“echo”语句将用于放置换行符。外部 for 循环在 10 次迭代后结束。让我们保存此代码以在 shell 上查看其结果。代码附在这里。

运行此 Bash 代码时,我们得到了如下所示的漂亮的“*”字符图案,这些字符按 1 到 10 的顺序逐渐增加。输出显示在所附图像中。

$ bash bash.sh

结论

综上所述,这都是关于 Ubuntu 20.04 Linux 系统的 Bash 脚本中嵌套“for”循环的使用。我们已经讨论了示例,以了解 Bash 中的简单“for”循环、嵌套“for”循环以及 Bash 脚本中的单行嵌套“for”循环。