当执行break命令时,控制立即交到循环以外,直接从done后面的命令继续脚本的执行。
continue和break的命令格式是一样的,他们的区别仅仅在于:break退出(或者说结束)循环,执行循环体后面的语句,被退出的循环再也得不到执行了;而continue仅仅跳出这一次循环,继续执行循环体,循环内continue后面的命令永远不会执行,循环体后面的语句要等该循环结束了才会执行。
bread 使用.
[root@localhost tmp]# cat sample.sh
#!/bin/bash
for i in a b c d
do
echo -n "$i " # -n 是禁止换行
for j in `seq 10`
do
if [ $j -eq 5 ]
then
break #跳出本级循环
fi
echo -n "$j "
done
echo #"打印一个换行符"
done
[root@localhost tmp]# sh sample.sh
a 1 2 3 4
b 1 2 3 4
c 1 2 3 4
d 1 2 3 4
[root@localhost tmp]#
bread 2 跳出两级循环
[root@localhost tmp]# cat sample.sh
#!/bin/bash
for i in a b c d
do
echo -n "$i "
for j in `seq 10`
do
if [ $j -eq 5 ]
then
break 2 #跳出两层循环
fi
echo -n "$j "
done
echo
done
echo #打印一个空行
[root@localhost tmp]# sh sample.sh
a 1 2 3 4
[root@localhost tmp]#
continue 使用
[root@localhost tmp]# cat sample.sh
#!/bin/bash
for i in a b c d
do
echo -n "$i "
for j in `seq 10`
do
if [ $j -eq 5 ]
then
continue #跳处这一次循环
fi
echo -n "$j "
done
echo
done
[root@localhost tmp]# sh sample.sh
a 1 2 3 4 6 7 8 9 10
b 1 2 3 4 6 7 8 9 10
c 1 2 3 4 6 7 8 9 10
d 1 2 3 4 6 7 8 9 10
[root@localhost tmp]#
[root@localhost tmp]# cat sample.sh
#!/bin/bash
for i in a b c d
do
echo -n "$i "
for j in `seq 10`
do
if [ $j -eq 5 ]
then
echo
continue 2 #跳出两层循环
fi
echo -n "$j "
done
echo #这个语句是不会执行的.
done
[root@localhost tmp]# sh sample.sh
a 1 2 3 4
b 1 2 3 4
c 1 2 3 4
d 1 2 3 4
[root@localhost tmp]#