首先来明确一下三者的定义:
- exit:退出shell程序,不再执行exit下的任何语句
- break:跳出整个循环
- continue:跳出本次循环,继续下一次循环
测试脚本:
1、exit
#!/bin/bash
i=1
for i in `seq 1 5`;do
if [ $i -eq 3 ];then
exit
fi
echo $i
done
执行结果:
[root@localhost ~]sh 11.sh
1
2
解释:当i值等于3时if判断条件成立,直接就执行exit了,执行exit后下面的所有语句均不执行,所以只会输出1、2
2、break
#!/bin/bash
i=1
for i in `seq 1 5`;do
if [ $i -eq 3 ];then
break
fi
echo $i
done
执行结果:
[root@localhost ~]sh 11.sh
1
2
解释:当i值等于3时if判断条件成立,碰到了break命令直接退出了for循环语句,循环内剩余的其他语句就都不执行了,但若循环语句后面还有其他语句则会继续执行
3、continue
#!/bin/bash
i=1
for i in `seq 1 5`;do
if [ $i -eq 3 ];then
continue
fi
echo $i
done
执行结果:
[root@localhost ~]# sh 11.sh
1
2
4
5
解释:当i值等于3时if判断条件成立,遇到continue命令,直接跳过了本次循环,后面的语句不执行了,进行下一次循环,所以会跳过3