在Linux Bash中,break和Continue语句使您可以控制循环执行。循环使您可以多次运行一个或多个命令,直到满足特定条件为止,但是,有时您可能需要更改循环流程并终止循环或仅终止当前迭代。
Bash break声明 break语句终止当前循环,并将程序控制传递给终止循环之后的命令,它用于退出for、while、until或select循环,break语句的语法采用以下形式: break [n] [n]是一个可选参数,并且必须大于或等于1,提供[n]时,将退出第n个封闭循环,中断1等于中断。 为了更好地了解如何使用break语句,让我们来看以下示例。 在下面的脚本中,一旦当前迭代的项目等于2,则while循环的执行将被中断: 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! 这是在for loops嵌套中使用break语句的示例。 如果未提供参数[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! 如果要退出外循环,请使用break2,参数2使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声明 对于当前迭代,continue语句跳过封闭循环体内的其余命令,并将程序控制传递给循环的下一个迭代。 Continue语句的语法如下: continue [n] [n]参数是可选的,并且可以大于或等于1,给定[n]时,将恢复第n个封闭循环,继续1等同于继续。 在下面的示例中,一旦当前迭代的项目等于2,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整除,则continue语句将跳过echo命令并将控制权传递给循环的下一个迭代: for i in {1..50}; do if [[ $(( $i % 9 )) -ne 0 ]]; then continue fi echo "Divisible by 9: $i" done 参考:echo命令_Linux echo命令使用详解:输出指定的字符串或者变量。 输出: Divisible by 9: 9 Divisible by 9: 18 Divisible by 9: 27 Divisible by 9: 36 Divisible by 9: 45
结论 循环是编程语言的基本概念之一,在Bash等脚本语言中,循环对于自动执行重复性任务很有用。 break语句用于退出当前循环,continue语句用于退出循环的当前迭代并开始下一个迭代。
相关主题 |