2016 - 2024

感恩一路有你

Shell中循环控制

浏览量:3516 时间:2024-01-18 17:07:48 作者:采采

在编写Shell脚本时,循环是一个非常常见的结构。有时候,在循环过程中我们需要满足某些条件时强制跳出循环或者只是跳过当前循环。和大多数编程语言类似,Shell也提供了break和continue两个命令来实现这些功能。

使用break命令跳出循环

break命令允许我们跳出所有循环,终止执行后面的所有循环。下面是一个例子,当用户输入的数字大于5时,脚本将进入死循环,要跳出这个循环并返回到Shell提示符下,我们可以使用break命令。

```Shell

#!/bin/bash

while :

do

echo -n "请输入一个1到5之间的数字: "

read aNum

case $aNum in

1|2|3|4|5) echo "你输入的数字是$aNum!"

;;

*) echo "你没有选择1到5之间的数字, 游戏结束!"

break

;;

esac

done

```

在嵌套循环中使用break命令

在嵌套循环中,break命令后面可以跟一个整数,表示跳出第几层循环。下面是一个嵌套循环的例子,当变量var1等于2并且变量var2等于0时,就跳出循环。

```Shell

#!/bin/bash

for var1 in 1 2 3

do

for var2 in 0 5

do

if [ $var1 -eq 2 -a $var2 -eq 0 ]

then

break 2

else

echo "$var1 $var2"

fi

done

done

```

使用continue命令跳过当前循环

continue命令与break命令类似,它可以让我们跳过当前循环,继续执行下一次循环。与break命令不同的是,continue命令只会跳出当前循环,而不会跳出所有循环。下面是一个例子,当输入的数字不在1到5之间时,我们将跳过打印提示,并继续进行下一次循环。

```Shell

#!/bin/bash

while :

do

echo -n "请输入一个1到5之间的数字: "

read aNum

case $aNum in

1|2|3|4|5) echo "你输入的数字是$aNum!"

;;

*) echo "你没有选择1到5之间的数字!"

continue

echo "游戏结束!"

;;

esac

done

```

同时使用break和continue命令

在某些情况下,我们可能需要同时使用break和continue命令。下面是一个例子,当输入的数字不在1到5或6到10之间时,我们将跳出循环并打印游戏结束。

```Shell

#!/bin/bash

while :

do

echo -n "请输入一个1到5或6到10之间的数字: "

read aNum

case $aNum in

1|2|3|4|5) echo "你输入的数字是$aNum!"

;;

6|7|8|9|10) echo "你输入的数字是$aNum!"

;;

*) echo "你没有选择1到10之间的数字!"

echo "游戏结束!"

break

;;

esac

done

```

通过使用这些循环控制命令,我们可以更好地控制Shell脚本中的循环流程,使代码更加灵活和高效。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。