在本章中,我们将讨论Unix中的Shell循环控制。到目前为止,您已经研究了创建循环和使用循环来完成不同的任务。有时您需要停止循环或跳过循环迭代。
break 语句
continue 语句
如果不满足所需条件,则循环可能永远持续下去。永远执行而不会终止的循环执行无限次。因此,这种循环称为无限循环。
这是一个简单的示例,使用 while 循环显示数字0到9-
#!/bin/sh a=10 until [ $a -lt 10 ] do echo $a a=`expr $a + 1` done
此循环永远持续,因为 a 总是大于或等于10 ,并且永远不小于10。
在完成直到break语句的所有代码行的执行之后,break语句用于终止整个循环的执行。 然后,在循环结束后下移到代码。
以下 break 语句用于循环退出-
break
break命令也可以使用以下格式从嵌套循环中退出:
break n
在这里, n 指定到出口的 n th 封闭循环。
这是一个简单的示例,该示例显示 a 变为5时循环立即终止-
#!/bin/sh a=0 while [ $a -lt 10 ] do echo $a if [ $a -eq 5 ] then break fi a=`expr $a + 1` done
执行后,您将收到以下输出-
0 1 2 3 4 5
这是嵌套的for循环的简单示例。如果 var1等于2 和 var2等于0 ,则此脚本会退出两个循环-
#!/bin/sh 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
执行后,您将收到以下输出。在内部循环中,您有一个带有参数2的break命令。这表明,如果满足条件,则应跳出外部循环,并最终脱离内部循环。
1 0 1 5
Continue语句与break命令类似,不同之处在于它使循环的当前迭代而不是整个循环退出。
continue
与break语句一样,可以为继续命令提供一个整数参数,以从嵌套循环中跳过命令。
continue n
在这里, n 指定要继续的 n th 封闭循环。
以下循环利用 continue 语句,该语句从continue语句返回并开始处理下一条语句-
#!/bin/sh NUMS="1 2 3 4 5 6 7" for NUM in $NUMS do Q=`expr $NUM % 2` if [ $Q -eq 0 ] then echo "Number is an even number!!" continue fi echo "Found odd number" done
执行后,您将收到以下输出-
Found odd number Number is an even number!! Found odd number Number is an even number!! Found odd number Number is an even number!! Found odd number
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
Spring Boot与Kubernetes云原生微服务实践 -〔杨波〕