shell脚本中的循环(for循环,while循环)及break、continue的用法示例

  • A+
所属分类:linux技术
摘要

Shell脚本中也算是一门简易的编程语言了,当然循环是不能缺少的。常用到的循环有for循环和while循环。下面就分别介绍一下两种循环的结构。

Shell脚本中也算是一门简易的编程语言了,当然循环是不能缺少的。常用到的循环有for循环和while循环。下面就分别介绍一下两种循环的结构。

【for循环】:

Shell脚本中的for循环示例:

#! /bin/bash ## author:Xiong Xuehao ## Use for in this script. for i in `seq 1 5`; do   echo $i done

脚本中的seq 1 5 表示从1到5的一个序列。你可以直接运行这个命令试下。脚本执行结果为:

shell脚本中的循环(for循环,while循环)及break、continue的用法示例

  通过这个脚本就可以看到for循环的基本结构:

for 变量名 in 循环的条件; do

command

done

 循环的条件那一部分也可以写成这样的形式,中间用空格隔开即可。你也可以试试,for i in `ls`; do echo $i; done for i in `cat test.txt`; do echo $i; done

 

【while循环】:

再来看看这个while循环,基本格式为:

while 条件; do

command

done

#! /bin/bash ## author:Xiong Xuehao ## Use while in this script.  a=10 while [ $a -ge 1 ];do   echo $a   a=$[$a-1] done

脚本的执行结果为:

shell脚本中的循环(for循环,while循环)及break、continue的用法示例

 另外你可以把循环条件忽略掉,笔者常常这样写监控脚本。

while :; do

command

done

示例:

#! /bin/bash ## author:Xiong Xuehao ## Monitoring alarm.  while :  do     load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`     if [ $load -gt 10 ]     then         /usr/local/sbin/mail.py xxxxxxxxxx@qq.com "load high" "$load"     fi     sleep 30 done

Shell脚本(for循环,while循环里面使用 break跳出循环,continue结束本次循环)

     在看脚本之前,我们需要知道continue和break的意思:
continue是继续的意思,也就是当运行结果不满足条件时,在从头循环一遍。(通俗理解是:跳过本次循环剩余部分,直接开始下一轮循环)
break是跳出循环的意思。(通俗理解是退出整个循环)。

注意break、continue仅在`for', `while', 或者`until' 循环中有意义。

      下面先来看for循环中使用break的例子:有5个人参加抢答游戏,但是只有3个名额剩余的都淘汰。从1,2,3,4,5报数,数到3时结束。

#! /bin/bash ## author:Xiong Xuehao ## 循环语句里面的continue和break.  for i in `seq 1 5`; do   echo -n "$i"   if [ $i -ge 3 ]; then     echo "名额满了,剩下的都离开吧"     break   else     echo "继续"   fi done

如图:

shell脚本中的循环(for循环,while循环)及break、continue的用法示例

  

      下面来看for循环中使用continue的例子:有5个人参加抢答游戏,前两名2个名额,迟到的都罚站。从1,2,3,4,5报数,从第3名开始及以后的都罚站。

#! /bin/bash ## author:Xiong Xuehao ## 循环语句里面的continue和break.  for i in `seq 1 5`; do   echo -n "$i"   if [ $i -ge 3 ]; then     echo "迟到了,罚站"     continue   else     echo "继续"   fi done

如图:

 shell脚本中的循环(for循环,while循环)及break、continue的用法示例

  上面两个例子注意看区别哦。

 

再看一个for循环的脚本,将break个continue结合起来使用的例子:

要求输入一个数字,如果输入内容不是数字返回一个字符串提醒,如果输入为空也返回一个字符串提醒,如果是输入数字则将该数字显示出来。

#! /bin/bash ## author:Xiong Xuehao ## 循环语句里面的continue和break.  while : do     read -p "please input a number: " n     if [ -z "$n" ]     then        echo "提醒,你需要输入内容."        continue     fi     n1=`echo $n|sed 's/[0-9]//g'`     if [ ! -z "$n1" ]     then        echo "输入错误,你只能输入一个纯数字."        continue     fi     break done echo $n

执行如图:

shell脚本中的循环(for循环,while循环)及break、continue的用法示例

 【完】