码迷,mamicode.com
首页 > 系统相关 > 详细

linux控制循环

时间:2014-11-07 19:20:50      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:循环   linux   

可以控制循环内部的两条命令:break命令 continue命令

break命令

break命令是在处理过程中跳出循环的一种简单方法。可以使用break命令跳出任何类型的循环,包括while循环和until循环

  1. 跳出单循环

#!/bin/bash

#breaking out of a for loop

for var1 in 1 2 3 4 5

do

 if [ $var1 -eq 3 ]

 then

 break

 fi

 echo "Iteration number:$var1"

done

echo "The for loop in completed"

当var1=3时,跳出循环!

[root@localhost ~]# ./test17.sh 

Iteration number:1

Iteration number:2

The for loop in completed

2.跳出内循环

#!/bin/bash

#breaking out of an inner loop

 for (( a = 1; a < 4; a++ ))

do

 echo "out   side   loop:$a"

 for (( b = 1; b < 100; b++  ))

 do

 if [ $b -eq 5 ]

 then

 break

 fi

 echo "In  loop:$b"

 done

done


[root@localhost ~]# ./test19.sh 

out   side   loop:1

In  loop:1

In  loop:2

In  loop:3

In  loop:4

out   side   loop:2

In  loop:1

In  loop:2

In  loop:3

In  loop:4

out   side   loop:3

In  loop:1

In  loop:2

In  loop:3

In  loop:4

3.跳出外循环:break n

n表明要跳出的循环级别,默认n=1,代表跳出当前循环!若n=2,将停止外循环

#!/bin/bash

#breaking out of an outer loo

  for (( a = 1; a < 4; a++ ))

do

  echo "Out  Loop:$a"

  for (( b = 1; b <100; b++ ))

  do

  if [ $b -gt 4 ]

  then

  break 2

  fi

  echo "Inner loop:$b"

  done

done

[root@localhost ~]# ./test20.sh 

Out  Loop:1

Inner loop:1

Inner loop:2

Inner loop:3

Inner loop:4


continue命令

continue是一种提前停止循环内命令,而不完全终止循环方法!

#!/bin/bash

#using the continue command

  for (( var1 = 1; var1 < 13; var1++ ))

do

  if [ $var1 -gt 3 ] && [ $var1 -lt 10 ]

then

  continue

fi

  echo "Iteration Number:$var1"

done


[root@localhost ~]# ./test21.sh 

Iteration Number:1

Iteration Number:2

Iteration Number:3

Iteration Number:10

Iteration Number:11

Iteration Number:12

if-then语句条件(值大于5小于10)满足时,shell执行continue命令,跳过该循环中剩下的命令,但是循环继续进行!如果if-the语句条件不满足时,那么循环恢复正常!

与break命令一样,continue命令也可以指定循环级别:

continue n

#!/bin/bash

#testing an outer loop

for (( a = 1; a <= 3; a++ ))

do

 echo "Iteration $a"

 for (( b = 1; b < 4; b++ ))

do

 if [ $a -gt 2 ] && [ $a -lt 4 ]

then

 continue 2

 fi

 var3=$[ $a * $b ]

 echo "The result of $a * $b is $var3"

done

done


[root@localhost ~]# ./test22.sh 

Iteration 1

The result of 1 * 1 is 1

The result of 1 * 2 is 2

The result of 1 * 3 is 3

Iteration 2

The result of 2 * 1 is 2

The result of 2 * 2 is 4

The result of 2 * 3 is 6

Iteration 3


重定向循环的输出:

#!/bin/bash

  for (( a = 1; a < 10; a++ ))

do

  echo "The number is $a"

done > test23.txt

  echo "The command is finished"

[root@localhost ~]# ./test23.sh

The command is finished

[root@localhost ~]# cat test23.txt 

The number is 1

The number is 2

The number is 3

The number is 4

The number is 5

The number is 6

The number is 7

The number is 8

The number is 9


本文出自 “linux运维分享” 博客,请务必保留此出处http://liangey.blog.51cto.com/9097868/1574060

linux控制循环

标签:循环   linux   

原文地址:http://liangey.blog.51cto.com/9097868/1574060

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!