Shell break和continue命令

在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,像大多数编程语言一样,Shell也使用 break 和 continue 来跳出循环。

break命令

break命令允许跳出所有循环(终止执行后面的所有循环)。

下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到shell提示符下,就要使用break命令。

#!/bin/bash
while :
do
    echo -n "Input a number between 1 to 5: "
    read aNum
    case $aNum in
        1|2|3|4|5) echo "Your number is $aNum!"
        ;;
        *) echo "You do not select a number betewwn 1 to 5,game is over!"
            break;
        ;;
    esac
done
~
~          

在嵌套循环中,break 命令后面还可以跟一个整数,表示跳出第几层循环。例如:

break n

表示跳出第 n 层循环。

下面是一个嵌套循环的例子,如果 var1 等于 2,并且 var2 等于 0,就跳出循环:

#!/bin/bash

for var1 in 1 2 3
do
   for var2 in 0 5
   do
       if [ $var1 -eq 2 -a $var2 -eq 0 ]
       then
           break 1
       else
           echo "$var1 $var2"
       fi
    done
done
~     

运行结果:

1 0
1 5
3 0
3 5

continue命令

continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。

对上面的例子进行修改:

#!/bin/bash

while :
do
    echo -n "Input a number between 1 to 5"
    read aNum
    case $aNum in
        1|2|3|4|5) echo "Your number is $aNum!"
        ;;
        *) echo "You do not select a number between 1 to 5!"
           continue
           echo "Game is over!"
         ;;
    esac
done

运行代码发现,当输入大于5的数字时,该例中的循环不会结束,语句

echo "Game is over!"

永远不会被执行。

同样,continue 后面也可以跟一个数字,表示跳出第几层循环。

再看一个 continue 的例子:

#!/bin/bash

NUMS="1 2 3 4 5 6 7"

for NUM in $NUMS
do
    Q=$(expr $NUM % 2)
    if [ $Q -eq 0 ]
    then
       echo "Number is an even number!!"
       continue
    fi
    echo "Found odd number"
done

运行结果:

Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number
时间: 2024-11-03 22:36:43

Shell break和continue命令的相关文章

Linux Gvim shell break和continue命令

#break和continue命令:循环过程中,有时需要在未达到循环结束条件时强制跳出循环#break:允许跳出所有循环(终止执行后面的所有循环) 1 while : #死循环写法# 2 do 3 echo -n " Input a number between 1 to 5 : " 4 read aNum 5 case ${aNum} in 6 1|2|3|4|5) 7 echo " Your number is ${aNum}" 8 ;; 9 *) 10 ech

【Shell脚本学习21】Shell break和continue命令

在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,像大多数编程语言一样,Shell也使用 break 和 continue 来跳出循环. break命令 break命令允许跳出所有循环(终止执行后面的所有循环). 下面的例子中,脚本进入死循环直至用户输入数字大于5.要跳出这个循环,返回到shell提示符下,就要使用break命令. #!/bin/bash while : do echo -n "Input a number between 1 to 5: " read aNu

Linux shell break、continue、exit、return的用法

break.continue.exit.return一般用于控制循环的的走向 首先通过一个脚本说明 for ((i=1;i<5;i++ )) do if [ $i -eq 3 ] then #  break #  continue #  exit fi echo $i done echo OK 输出的结果 break的结果 1 2 OK continue的结果 1 2 4 OK exit的结果 1 2 由此可以说明 break n:n表示跳出循环的层数,如果省略n表示跳出整个循环 continu

Bash之break和continue命令在循环中的作用

1 continue:直接跳过本次循环,进入下一次循环. #!/bin/bash a=10 b=15 while [ $a -le $b ] do ((a++)) if [ $a -eq 11 ] || [ $a -eq 13 ] then continue fi echo $a done [[email protected] ~]# ./a.sh 12 14 15 16 2 break:此命令将会跳出循环 #!/bin/bash a=8 b=15 while [ $a -le $b ] do

Linux Shell Break和Continue

Break Continue 原文地址:https://www.cnblogs.com/Brake/p/12286345.html

shell编程中for,while,util,case,select,break, continue用法详解

关于shell脚本的更多详细实例讲解请参考:http://www.cnblogs.com/yuexiaxiaoxi/category/646749.html Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for.while和until.while循环和for循环属于"当型循环",而until属于"直到型循环".循环控制符:break和continue控制流程转向. 参考:<Linux 与unix shell 编程指

[转帖]shell 循环语句for/do/done和while/do/done以及break,continue

shell 循环语句for/do/done和while/do/done以及break,continue https://blog.csdn.net/weixin_38280090/article/details/81843264 原创舌耳 发布于2018-08-19 22:58:17 阅读数 15072 收藏展开 for/do/doneShell脚本的for循环结构和C语言很不一样,它类似于某些编程语言的foreach循环.例如: #! /bin/sh for FRUIT in apple ba

shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select

1.expr计算整数变量值 s=`expr 2 + 3` 运算符号和参数之间要有空格分开: 2.let命令 let s=(2+3)*4 echo $s 3.for语句 for 变量 in 列表 do 命令行(通常用到循环变量) done #!/bin/bash for var in one two three four five do echo ------ echo '$var is' $var done 以命令返回值作为列表 #!/bin/bash for var in `ls` do ec

Shell入门教程:流程控制(7)break和continue

第一节:breank命令 4种循环 for.while.until.select,如果想要提早结束循环,可在循环中使用break命令.执行break时,会跳出一层的循环,如果想跳出多层循环,可在break命令之后加上层数n(n一定要大于或等于1). #!/bin/bash for ((i=1;i<=10;i++)) do if [ $i -eq 6 ]; then break fi echo $i done 行5,如果i的值等于6,就跳出循环,即结束循环. 第二节:continue命令 cont