#!/bin/bash for i in `seq 1 3` do echo "i=$i" for j in `seq 1 3` do echo "j=$j" if [ $j -eq $i ] then break fi echo "j=$j" done done
运行结果 i=1 j=1 i=2 j=1 j=1 j=2 i=3 j=1 j=1 j=2 j=2 j=3bash
三次的输出结果能够得出 break 直接退出当前循环,只影响内置循环,对于外循环无影响。ide
#!/bin/bash for i in `seq 1 3` do echo "i=$i" for j in `seq 1 3` do echo "j=$j" if [ $j -eq $i ] then continue fi echo "j=$j" done done
运行结果i=1 j=1 j=2 j=2 j=3 j=3 i=2 j=1 j=1 j=2 j=3 j=3 i=3 j=1 j=1 j=2 j=2 j=3
从三次的输出结果能够得出 continue 是退出本次循环而且从新开始循环,且只影响当前循环,
对于外循环无影响。code
#!/bin/bash for i in `seq 1 3` do echo "i=$i" for j in `seq 1 3` do echo "j=$j" if [ $j -eq $i ] then exit 1 echo "j=$j" fi done done
运行结果: i=1 j=1 得出结论exit 直接退出整个脚本it
总结:break和continue二者都是只影响当前内置循环,而exit则是直接退出整个脚本class