个性化阅读
专注于IT技术分析

bash while循环

本文概述

在本主题中,我们演示了如何在Bash Script中使用while循环语句。

bash while循环可以定义为控制流语句,只要应用条件评估为true,该语句就允许重复执行给定的命令集。例如,我们可以运行多次echo命令,也可以仅逐行读取文本文件,然后使用Bash中的while循环处理结果。

Bash While循环的语法

Bash while循环具有以下格式:

while [ expression ];
do
commands;
multiple commands;
done

仅当表达式包含单个条件时,以上语法才适用。

如果表达式中包含多个条件,则while循环的语法如下:

while [ expressions ];
do
commands;
multiple commands;
done

while循环单行语法可以定义为:

while [ condition ]; do commands; done
while control-command; do Commands; done

“ while循环”语句有一些关键点:

  • 在执行命令之前检查条件。
  • “ while”循环还可以执行“ loop”可以完成的所有工作。
  • 只要条件评估为真,“ do”和“ done”之间的命令就会重复执行。
  • “ while”循环的参数可以是布尔表达式。

怎么运行的

while循环是一个受限的输入循环。这意味着在执行while循环的命令之前先检查条件。如果条件评估为真,则执行该条件之后的命令集。否则,循环终止,并将程序控制权交给“ done”语句之后的另一个命令。

Bash While循环示例

以下是bash while循环的一些示例:

单条件的While循环

在此示例中,while循环与表达式中的单个条件一起使用。这是while循环的基本示例,它将根据用户输入打印一系列数字:

#!/bin/bash
#Script to get specified numbers

read -p "Enter starting number: " snum
read -p "Enter ending number: " enum

while [[ $snum -le $enum ]];
do
echo $snum
((snum++))
done

echo "This is the sequence that you wanted."

输出量

有多个条件的While循环

以下是在表达式中具有多个条件的while循环的示例:

#!/bin/bash
#Script to get specified numbers

read -p "Enter starting number: " snum
read -p "Enter ending number: " enum

while [[ $snum -lt $enum || $snum == $enum ]];
do
echo $snum
((snum++))
done

echo "This is the sequence that you wanted."

输出量

无限While循环

无限循环是没有结束或终止的循环。如果条件始终评估为true,则会创建一个无限循环。循环将连续执行,直到使用CTRL C强行停止循环为止:

#!/bin/bash
#An infinite while loop

while :
do
echo "Welcome to srcmini."
done

我们也可以将上述脚本写成一行:

#!/bin/bash
#An infinite while loop

while :; do echo "Welcome to srcmini."; done

输出量

在这里,我们使用了内置命令(:),该命令始终返回true。我们还可以使用内置命令true来创建无限循环,如下所示:

#!/bin/bash
#An infinite while loop

while true
do
echo "Welcome to srcmini"
done

该bash脚本还将提供与上述无限脚本相同的输出。

注意:无限循环可以通过使用CTRL C或在脚本内添加一些条件退出来终止。

带有Break语句的While循环

根据所应用的条件,可以使用break语句来停止循环。例如:

#!/bin/bash
#While Loop Example with a Break Statement

echo "Countdown for Website Launching..."
i=10
while [ $i -ge 1 ]
do
if [ $i == 2 ]
then
	echo "Mission Aborted, Some Technical Error Found."
	break
fi
echo "$i"
(( i-- ))
done

输出量

根据脚本,将循环分配为迭代十次。但是在八次迭代之后存在一个条件,该条件会中断迭代并终止循环。执行脚本后,将显示以下输出。

While循环,带有Continue语句

continue语句可用于在while循环内跳过特定条件的迭代。

#!/bin/bash
#While Loop Example with a Continue Statement

i=0
while [ $i -le 10 ]
do
((i++))
if [[ "$i" == 5 ]];
then
	continue
fi
echo "Current Number : $i"
done

echo "Skipped number 5 using Continue Statement."

输出量

C风格的While循环

我们还可以在bash脚本中编写while循环,就像在C编程语言中编写while循环一样。

#!/bin/bash
#While loop example in C style

i=1
while((i <= 10))
do
echo $i
let i++
done

输出量

结论

在本主题中,我们讨论了如何在Bash中使用while循环语句执行特定任务。


赞(0) 打赏
未经允许不得转载:srcmini » bash while循环
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏