Shell break和continue¶
使用while, until, for, select循环时, 如果想提前结束循环, 可以使用break或continue关键字.
在C/C++, Python等大部分编程语言中, break和continue只能跳出当前层次的循环, 内层循环中的break和continue对外层循环不起作用;
但是Shell中的break和continue却能够跳出多层循环, 也即使说, 内层循环中的break和continue能够跳出外层循环.
在实际开发中, break和continue一般只用来跳出当前层次的循环, 很少有需要跳出多层循环的情况.
break¶
Shell break关键字的用法为:
break n
n表示要跳出的循环的层数, 如果省略n, 表示跳出当前的循环.
break关键字通常和if语句一起使用, 即满足条件时便跳出循环.
Example:
#!/usr/bin/env bash
sum=0
while read n
do
if ((n>0))
then
((sum += $n))
else
break
fi
done
echo "sum=$sum"
continue¶
Shell continue关键字的用法为:
continue n
n表示循环的层数:
- 如果省略
n, 表示continue只对当前层次的循环语句有效, 忽略本次循环的剩余代码, 直接进入下一次循环;- 如果带上
n, 那么continue对内层和外层循环语句都有效, 不但内层会跳过本次循环, 外层也会跳过本次循环.
continue关键字也通常和if语句一起使用, 即满足条件时便跳出循环.
Example:
#!/usr/bin/env bash
sum=0
while read n
do
if ((n<1 || n>100))
then
continue
fi
((sum += $n))
done
echo "sum=$sum"