#!/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=3
三次的输出结果可以得出 break 直接退出当前循环,只影响内置循环,对于外循环无影响。
#!/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 是退出本次循环并且重新开始循环,且只影响当前循环,
对于外循环无影响。
#!/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 直接退出整个脚本
总结:break和continue两者都是只影响当前内置循环,而exit则是直接退出整个脚本
原文:https://blog.51cto.com/11594671/2542015