Shell 脚本 101:Shell 脚本中的 for 循环

现在继续我们的教程,让我们在今天的主题中介绍 shell 脚本中的 for 循环。 我们已经在之前的教程中介绍了 while 循环,并使用 break 和 continue 语句根据特定条件退出 while 循环。 那我们直接进入主题吧!

Shell脚本中的while循环和for循环有什么区别?

for 循环和 while 循环之间的主要区别在于它们的定义和语法。 在使用 while 循环时,我们提供一个条件,即 while 循环继续循环直到它变为假。 我们没有指定循环的迭代次数。 另一方面,for 循环需要 2 或 3 个条件,最后一个条件通常决定迭代次数。

第一个条件是在循环开始时迭代序列的变量,并根据迭代的内容自动递增。 例如,如果它必须运行一系列数字,则变量会根据提供给它的数字自增。

如果我在上面写的所有内容对您来说都是胡言乱语,请继续阅读,一切都会很快变得清晰。

Bash for 循环的定义

有两种方法可以定义 bash for 循环。 第一个是 bash 带有两个变量的样式,第二个是带有 3 个变量的 C 样式。 这是它们的语法。

循环定义的 Bash 样式:

for VARIABLE in SEQUENCE 

多变的 是在循环中使用的变量名,并且 顺序 可以是一系列数字、多个文件、Linux 命令等。

C风格的循环定义:

for (( variable declaration; condition;  increment variable)) 

如何使用 for 循环?

既然你已经基本了解了 for 循环,是时候开始在我们的脚本中使用它了。 我们将从创建一个简单的 for 循环开始,该循环遍历给定的数字序列。

#!/bin/bash for i in 1 2 3 4 5 6 7 do         echo "Loop number $i" done 
Shell 脚本中的 For 循环

非常简单易懂? 让我们转到另一个序列组。

Bash For 循环文件

for 循环在我们循环时不会读取文件的内容,而只是允许我们在循环时对单个文件执行操作。 让我们看一个下面的例子。

#!/bin/bash for i in *.txt do         echo "Contents from the files: $i"         cat $i done 
For循环遍历文件

出于演示目的,我创建了两个包含一些文本的文件。 看看我如何编写一次 cat 命令,然后 for 循环遍历这两个文件。

在 Shell 脚本中为循环编写 C 风格

您现在应该对迭代单个序列感到满意。 让我们继续讨论我们之前讨论过的 C 风格的循环。 如果您已经使用过 C 或 C++,这将是几乎相同的事情。 但即使你没有,也不是太难。

让我们创建一个迭代 7 次并回显数字的 for 循环。

for (( i=1; i<=7; i++ )) do         echo "Loop number $i" done 
C 风格 For 循环C 风格 For 循环

让我们逐节了解循环。 我们使用双括号的原因是为了表示 bash 我们在括号内使用了 C 风格的表达式。

  • 第一个表达式: 我=1 创建循环的开始。
  • 第二种表达方式: 我 告诉循环应该运行直到变量小于或等于 7
  • 最后一个表达式: 我++ 决定增量如何发生。 在这种情况下,它发生在 1

结论

我希望这可以帮助您了解 shell 脚本中的 for 循环是如何工作的。 对于您可能有的任何问题,请随时在下面发表评论。