突破bash的嵌套循环

时间:2019-09-15 23:29:13

标签: bash

如何摆脱bash的嵌套循环?

尝试了continuebreakbreak有效。但是想了解更多。

for i in 1 2 3; do 
  if [[ $flag -eq 1 ]]; then
    break
  fi
done

break实际上如何知道该循环是嵌套的? 除了break之外,我还可以使用i=4或超出范围的内容退出循环。

1 个答案:

答案 0 :(得分:5)

使用break后跟一个数字,可以突破许多层次的嵌套。示例:

for i in 1 2 3 4 5; do
    echo
    echo i = $i
    for j in 1 2 3 4 5; do
        echo j = $j
        if [ $j -eq 4 ]; then break; fi
        if [ $j -eq 3 ] && [ $i -eq 4 ]; then break 2; fi
    done
done

结果:

i = 1
j = 1
j = 2
j = 3
j = 4

i = 2
j = 1
j = 2
j = 3
j = 4

i = 3
j = 1
j = 2
j = 3
j = 4

i = 4
j = 1
j = 2
j = 3