开发手册 欢迎您!
软件开发者资料库

Linux shell脚本中循环控制(break、continue)

所有循环的生命周期都是有限的,通过改变条件的真假,来决定循环是否能断绝执行,如果循环条件一直不改变,循环可能一直执行下去,这就是无限循环,需要停止循环或跳过循环的迭代。就需要使用break和continue。本文就主要介绍一下Linux shell脚本中循环控制(break、continue)。

1、break

break用于在执行完break语句之前的所有代码行之后终止整个循环的执行。

语法

break语句用于退出循环

break

break命令也可以使用这种格式从嵌套循环中退出

break n

注意n指定了第n层循环退出。

例如,

#!/bin/basha=0while [ $a -lt 10 ]do   echo $a   if [ $a -eq 5 ]   then      break   fi   a=`expr $a + 1`done

输出:

0
1
2
3
4
5

使用 break n退出循环:

#!/bin/bashfor var1 in 1 2 3do   for var2 in 0 5   do      if [ $var1 -eq 2 -a $var2 -eq 0 ]      then         break 2      else         echo "$var1 $var2"      fi   donedone

注意:一个不带参数的break 循环只能退出最内层的循环,而break n可以退出n层循环。

2、continue

ontinue语句与break命令用法差不多,不同之处在于它导致退出循环的当前迭代,而不是整个循环。当发生错误但想尝试执行循环的下一次迭代时,此语句非常有用。

语法

continue

break语句一样,可以给continue命令一个整数参数,以跳过嵌套循环中的命令。

continue n

注意n指定了第n层循环continue

例如,

#!/bin/basha=10b=15while [ $a -le $b ]do  ((a++))  if [ $a -eq 11 ] || [ $a -eq 13 ]    then        continue  fi  echo $adone

输出:

$ bash demo.sh 
12
14
15
16

continue直接跳过本次循环,进入下一次循环。