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