Skip to main content

如何编写Bash WHILE-Loops

Shell Scripting Tutorial for Beginners 15 - WHILE Loops (六月 2025)

Shell Scripting Tutorial for Beginners 15 - WHILE Loops (六月 2025)
Anonim

您可以通过将命令写入脚本文件然后运行它来执行一系列命令。

脚本文件只是一个文本文件,通常带有.SH文件扩展名,它包含一系列指令,这些指令也可以从命令行(shell)执行。

循环示例

下面是while循环的示例。执行时,此脚本文件将在屏幕上打印数字1到9。 while语句为指定终止条件提供了比for-loop更大的灵活性。

例如,您可以通过省略增量语句“((count ++))”来使前一个脚本成为无限循环:

“sleep 1”语句在每次迭代时暂停执行1秒。使用Ctrl + C键盘快捷键终止该过程。

您还可以通过将冒号作为条件来创建无限循环:

要在while循环中使用多个条件,必须使用双方括号表示法:

在此脚本中,变量“done”初始化为0,然后在计数达到5时设置为1.循环条件表明只要“count”小于9且“done”相等,while循环就会继续为零。因此,当计数等于5时,循环退出。

“&&”表示逻辑“和”和“||”意味着逻辑“或”。

条件中“和”和“或”的连词的替代符号是“-a”和“-o”,带有单个方括号。以上条件:

……可以改写为:

读取文本文件通常使用while循环完成。在以下示例中,bash脚本逐行读取名为“inventory.txt:”的文件的内容。

第一行将输入文件名分配给“FILE”变量。第二行将“标准输入”保存在文件描述符“6”中(它可以是3到9之间的任何值)。这样做是为了使“标准输入”可以恢复到脚本末尾的文件描述符“0”(参见语句“exec 0在第3行,输入文件被分配给文件描述符”0,“这是使用的”对于标准输入,“read”语句然后在每次迭代时从文件中读取一行并将其分配给“line1”变量。

为了过早退出while循环,可以像这样使用break语句:

break语句将程序执行跳到while循环并执行后面的任何语句。在这种情况下,声明“回声完成”。

另一方面,continue语句只跳过当前迭代的while循环语句的其余部分,并直接跳转到下一次迭代:

在这种情况下,当变量“count”达到5时执行“continue”语句。这意味着在此迭代中不执行后续语句(echo“$ count”)(当“count”的值为5时)。