如何摆脱bash的嵌套循环?
尝试了continue
和break
。 break
有效。但是想了解更多。
for i in 1 2 3; do
if [[ $flag -eq 1 ]]; then
break
fi
done
break
实际上如何知道该循环是嵌套的?
除了break
之外,我还可以使用i=4
或超出范围的内容退出循环。
答案 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