欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

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

一、break命令
break命令用于跳出循环,使用break可以跳出任何类型的循环:for、while、until。
           

1.跳出单循环


           

  1. $ cat  test.sh
  2. #!/bin/bash                        
  3. a=1
  4. while [ $a -le 5 ]
  5. do                        
  6. if [ $a -eq 3 ]
  7. then                        
  8. break                        
  9. fi                        
  10. echo "a=$a"                        
  11. a=$[$a+1]
  12. done                        
  13. $ ./test.sh
  14. a=1
  15. a=2
2、跳出内循环


           


           

  1. $ cat test.sh
  2. #!/bin/bash                        
  3. a=1
  4. while [ $a -le 5 ]
  5. do                        
  6. echo "Outer loop:a=$a"                        
  7. a=$[$a+1]
  8. for val in 1 2 3 4 5
  9. do                        
  10. if [ $val -eq 3 ]
  11. then                        
  12. break                        
  13. fi                        
  14. echo " Inner loop:val=$val"                        
  15. val=$[$val+1]
  16. done                        
  17. done                        
  18. $ ./test.sh
  19. Outer loop:a=1
  20.                             Inner loop:val=1
  21.                             Inner loop:val=2
  22. Outer loop:a=2
  23.                             Inner loop:val=1
  24.                             Inner loop:val=2
  25. Outer loop:a=3
  26.                             Inner loop:val=1
  27.                             Inner loop:val=2
  28. Outer loop:a=4
  29.                             Inner loop:val=1
  30.                             Inner loop:val=2
  31. Outer loop:a=5
  32.                             Inner loop:val=1
  33.                             Inner loop:val=2
显然,break只跳出了内层循环。外层循环依然执行了5次


           

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

  1. $ cat test.sh
  2. #!/bin/bash                        
  3. a=1
  4. while [ $a -le 5 ]
  5. do                        
  6. echo "Outer loop:a=$a"                        
  7. a=$[$a+1]
  8. for val in 1 2 3 4 5
  9. do                        
  10. if [ $val -eq 3 ]
  11. then                        
  12. break 2
  13. fi                        
  14. echo " Inner loop:val=$val"                        
  15. val=$[$val+1]
  16. done                        
  17. done                        
  18. $ ./test.sh
  19. Outer loop:a=1
  20.                             Inner loop:val=1
  21.                             Inner loop:val=2
二、continue命令
continue命令用于中止本次循环,重新判断循环条件,开始下一次循环。


           


           

  1. $ cat test.sh
  2. #!/bin/bash                        
  3. a=1
  4. for val in 1 2 3 4 5
  5. do                        
  6. if [ $val -le 3 ]
  7. then                        
  8. continue                        
  9. fi                        
  10. echo "val=$val"                        
  11. done                        
  12. $ ./test.sh
  13. val=4
  14. val=5
           


           

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guoyajie1990/article/details/54645135


来自  https://blog.csdn.net/guoyajie1990/article/details/54645135

普通分类: