Menu Close

无限循环及Break和Continue命令

如果不满足所需条件,则循环可能永远持续下去。 永远执行而不会终止的循环称为无限循环。

例如脚本:

#!/bin/sh

a=10

until [ $a -lt 10 ]
do
   echo $a
   a=`expr $a + 1`
done

由于a始终大于或等于10, 永远不会小于10,因此该循环会永远持续下去。

break命令

break命令很暴力,跳出所有循环(终止执行后面的所有循环)。

实例:

#!/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

continue命令

continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环

实例:

#!/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

continue命令跳出当前循环,进入下一个循环。

结果:

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