循环允许您多次运行一个或多个命令,直到满足特定条件。但是,有时您可能需要更改循环流程并终止循环或仅终止当前迭代。
在巴什中,break
and continue
语句允许您控制循环执行。
Bash break
陈述#
The break
语句终止当前循环并将程序控制传递给终止循环后面的命令。它用于退出for
, while
, until
, or select
环形。
s
的语法break
声明采用以下形式:
[n]
是一个可选参数,并且必须大于或等于 1。当[n]
提供后,将退出第 n 个封闭循环。break 1
相当于break
.
为了更好地理解如何使用break
声明,我们来看看下面的例子。
在下面的脚本中,执行while 循环一旦当前迭代项等于2
:
i=0
while [[ $i -lt 5 ]]
do
echo "Number: $i"
((i++))
if [[ $i -eq 2 ]]; then
break
fi
done
echo 'All Done!'
Number: 0
Number: 1
All Done!
这是一个使用的示例break
嵌套语句for 循环
.
当争论时[n]
没有给出,break
终止最内层的封闭循环。外层循环没有终止:
for i in {1..3}; do
for j in {1..3}; do
if [[ $j -eq 2 ]]; then
break
fi
echo "j: $j"
done
echo "i: $i"
done
echo 'All Done!'
j: 1
i: 1
j: 1
i: 2
j: 1
i: 3
All Done!
如果想退出外循环,可以使用break 2
。争论2
tells break
终止第二个封闭循环:
for i in {1..3}; do
for j in {1..3}; do
if [[ $j -eq 2 ]]; then
break 2
fi
echo "j: $j"
done
echo "i: $i"
done
echo 'All Done!'
j: 1
All Done!
Bash continue
陈述#
The continue
语句跳过当前迭代的封闭循环体内的剩余命令,并将程序控制传递给循环的下一次迭代。
的语法continue
声明如下:
The [n]
参数是可选的,并且可以大于或等于 1。当[n]
给定后,将恢复第 n 个封闭循环。continue 1
相当于continue
.
在下面的示例中,一旦当前迭代项is equal
to 2
, the continue
语句将导致执行返回到循环的开头并继续下一次迭代。
i=0
while [[ $i -lt 5 ]]; do
((i++))
if [[ "$i" == '2' ]]; then
continue
fi
echo "Number: $i"
done
echo 'All Done!'
Number: 1
Number: 3
Number: 4
Number: 5
All Done!
以下脚本打印数字1
通过50
可以被整除9
.
如果一个数不能被整除9
, the continue
语句跳过echo命令并将控制传递给循环的下一次迭代。
for i in {1..50}; do
if [[ $(( $i % 9 )) -ne 0 ]]; then
continue
fi
echo "Divisible by 9: $i"
done
Divisible by 9: 9
Divisible by 9: 18
Divisible by 9: 27
Divisible by 9: 36
Divisible by 9: 45
结论#
循环是编程语言的基本概念之一。在 Bash 等脚本语言中,循环对于自动执行重复任务非常有用。
The break
语句用于退出当前循环。这continue
语句用于退出循环的当前迭代并开始下一次迭代。
如果您有任何问题或反馈,请随时发表评论。