码迷,mamicode.com
首页 > 其他好文 > 详细

2018-7-13

时间:2018-07-18 17:05:33      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:目录   numbers   images   变量   bin   only   image   ace   type   

20.10 for循环
20.11/20.12 while循环
20.13 break跳出循环
20.14 continue结束本次循环
20.15 exit退出整个脚本



20.10 for循环


for循环**

语法:for 变量名 in 条件; do …; done 

案例

需求:计算1-100所有数字的和

 #!/bin/bash 

sum=0  //赋予初值

for i in `seq 1 100` 

do    

   sum=$[$sum+$i]     

   echo $i 

done 

echo $sum

技术分享图片技术分享图片

文件列表循环

#!/bin/bash

cd /etc/  //先进到目录下才能ls

for a in `ls /etc/`

do     

if [ -d $a ]     

then       

   ls -d $a     

fi 

done

技术分享图片技术分享图片

注意:for循环以空格和回车作为分隔符




20.11/20.12 while循环

while循环**

语法 while 条件; do … ; done 

案例:

需求:每个半分钟,检查系统负载,当系统负载大于十就发一份邮件

 #!/bin/bash 

while ture

do     

  load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`   //把系统负载赋值到load这个变量里

   if [ $load -gt 10 ]     

   then        

      top|mail -s "load is high: $load" asldkfls@11.com     

   fi     

     sleep 30  //30秒查一次

done 

#!/bin/bash

while : 

do

     read -p "Please input a number: " n

     if [ -z "$n" ]

     then

         echo "you need input sth."

         continue //重新开始前面的循环

     fi

     n1=`echo $n|sed 's/[0-9]//g'` //判断是否纯数字

     if [ -n "$n1" ]

     then

         echo "you just only input numbers."

         continue

     fi

     break //退出循环

 done

 echo $n

技术分享图片技术分享图片





20.13 break跳出循环/20.14 continue结束本次循环/20.15 exit退出整个脚本


break即为跳出本次循环,用在循环语句里

#!/bin/bash

for i in `seq 1 5` 

do

     echo $i

     if [ $i == 3 ]

     then

         break

     fi

     echo $i

 done 

echo aaaaaaa

continue即结束本次循环

忽略continue之下的代码,直接进行下一次循环

#!/bin/bash

 for i in `seq 1 5`

 do

     echo $i

     if [ $i == 3 ]

     then

         continue

     fi

     echo $i

 done 

echo $i

技术分享图片

对比,break达到目的直接跳出循环,continue结束了本次循环但完成整个循环

exit 直接退出脚本

#!/bin/bash

for i in `seq 1 5` 

do

     echo $i

     if [ $i == 3 ]

     then

         exit

     fi

     echo $i

 done

 echo aaaaaaa

技术分享图片

满足 条件if [ $i == 3 ] 直接退出脚本,不会执行下面的语句了





扩展

select**

select也是循环的一种,它比较适合用在用户选择的情况下。

格式:selet  变量名 in  命令1 命令2 命令3 




2018-7-13

标签:目录   numbers   images   变量   bin   only   image   ace   type   

原文地址:http://blog.51cto.com/13646170/2146786

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