了解Shell脚本中的for循环

时间:2020-02-23 14:43:59  来源:igfitidea点击:

继续我们之前的教程,今天让我们了解shell脚本中的for循环。
我们之前已经介绍过while循环,而for循环的用法与此类似,但格式不同。

入门

循环被全世界的程序员广泛使用。
在shell脚本中添加循环可以通过减少需要编写的代码量来帮助您提高代码效率。

这是通过在shell程序脚本中自动执行一组语句来完成的,而不是重复编写它们。

当我们知道希望循环运行的次数时,可以在shell程序脚本中使用for循环。
可以通过项目列表指定此迭代次数。
让我们了解shell脚本中for循环的工作方式。

如何在Shell脚本中创建for循环?

有两种方法可以在Shell脚本中运行for循环。

1.使用" in"关键字

for var in val_1 val_2 val_3 ... val_n
do
  statement 1
  statement 2
  statement 3
done

其中我们有四个关键字,分别是for,in,do和done。

  • 第一个关键字" for"用于指定运行Shell脚本时循环的开始。

  • 其后是一个变量,该变量可以采用val_1,val_2等指定的值。

  • 关键字in指定此值列表的开头。
    这些值必须以"空格"分隔,因为其他任何字符(例如逗号)都将被视为"值"的一部分。

  • 在要执行的语句之前使用关键字do

  • 完成表示循环已结束。

2.使用C风格的初始化

在shell程序脚本中使用for循环的另一种方法是合并C编程方法。
这就是语法的样子。

for (( initialization parameter; condition; updation))
do
  statement 1
  statement 2
  statement 3
done

其中我们将" in"关键字替换为更类似于C的方法。

  • 在循环开始第一次迭代之前,初始化参数用于初始化变量,该变量将作为我们循环运行的循环数的计数器

  • 只要条件评估为TRUE,循环就会执行在" do"和" done"之间编写的所有语句。

  • 最后,最后一个参数" updation"用于更新用作计数器的变量。

Shell脚本中的for循环示例

现在,我们已经熟悉了shell脚本中for循环的概念和工作原理。
但是要正确理解命令,您需要能够在代码中使用它。

我们来看一些for循环的实际用法示例

1.创建一个基本的for循环

我们从简单和基本的东西开始。
其中我们使用第一种使用for循环的方法。

我们使用关键字in在一个循环中运行5次迭代,同时告诉用户循环执行的次数。
这就是循环在代码中的外观。

#!/bin/sh
for i in 1 2 3 4 5
do
echo "Executing loop $i time(s)"
done

2.在Shell脚本中使用for循环生成数字的随机列表

现在我们来看一个使用For循环的类似C的变体的示例。
我们都知道如何使用内置命令通过Shell脚本生成伪随机数。

其中我们将使用此知识来生成5个伪随机数的列表。

#!/bin/sh
for (( i=1; i <= 5; i++ ))
do
 echo "Randomiser iteration $i: $RANDOM"
done

3.使用for Loop打印文件和目录的名称

一个接一个地处理大量文件和目录需要很长时间。
一遍又一遍地键入相同的命令是浪费时间。

因此,我们应该利用for循环来自动执行命令。
让我们看一下下面的示例Shell脚本,以打印您主目录中存在的所有文件和目录的名称。

#!/bin/sh
i=1
cd ~
for item in *
do
  echo "File number $((i++)) : $item"
done