Linux shell编程之循环控制命令 break、continue

来源:互联网 发布:光盘加密软件 编辑:程序博客网 时间:2024/05/16 11:32
一、break命令
break命令用于跳出循环,使用break可以跳出任何类型的循环:for、while、until。

1.跳出单循环

$ cat  test.sh #!/bin/basha=1while [ $a -le 5 ]do   if [ $a -eq 3 ]   then       break   fi   echo "a=$a"   a=$[$a+1]done$ ./test.sh a=1a=2
2、跳出内循环

$ cat test.sh#!/bin/basha=1while [ $a -le 5 ]do   echo "Outer loop:a=$a"   a=$[$a+1]   for val in 1 2 3 4 5   do         if [ $val -eq 3 ]        then            break         fi        echo "Inner loop:val=$val"        val=$[$val+1]   donedone$ ./test.shOuter loop:a=1Inner loop:val=1Inner loop:val=2Outer loop:a=2Inner loop:val=1Inner loop:val=2Outer loop:a=3Inner loop:val=1Inner loop:val=2Outer loop:a=4Inner loop:val=1Inner loop:val=2Outer loop:a=5Inner loop:val=1Inner loop:val=2
显然,break只跳出了内层循环。外层循环依然执行了5次

3、跳出多层循环
有时需要跳出多层循环,使用:break n,n表示要跳出的循环层数,默认情况下 n=1,代表只跳出当前循环。

$ cat test.sh#!/bin/basha=1while [ $a -le 5 ]do   echo "Outer loop:a=$a"   a=$[$a+1]   for val in 1 2 3 4 5   do         if [ $val -eq 3 ]        then            break 2        fi        echo "Inner loop:val=$val"        val=$[$val+1]   donedone$ ./test.sh Outer loop:a=1Inner loop:val=1Inner loop:val=2
二、continue命令
continue命令用于中止本次循环,重新判断循环条件,开始下一次循环。

$ cat test.sh #!/bin/basha=1for val in 1 2 3 4 5do   if [ $val -le 3 ]  then       continue  fi  echo "val=$val"done$ ./test.sh val=4val=5

0 0
原创粉丝点击