while条件句

语法:

条件满足一直做

while 条件

         do

         指令

Done

==========

条件满足退出(不多见)

until 条件

         do

         指令

done

 

 

  脚本实例:守护进程监控

Sleep:按秒打印

Usleep:微秒打印, 单位是微秒(百万分之一秒);

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        :2秒打印(死循环)守护进程

#Version  :版本 V1.1

#Update           :2016-11-22 15:04:12

 

while true

         do

#查看系统性能

         uptim

#2秒打印一次,并保存到uptim.log

         sleep 2 >uptim.log

done

 

 

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        :微秒秒打印(死循环)守护进程

#Version  :版本 V1.1

#Update           :2016-11-22 15:04:12

 

while true

         do

#查看系统性能

         uptim

#2秒打印一次,并保存到uptim.log

         usleep 200 >uptim.log

done

 

  脚本实例:1-100求和

不适用于大数据量大数据使用公式计算

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        :1-100求和

#Version  :版本 V1.1

#Update           :2016-11-22 15:04:12

 

#定义$i

i=1

#定义$sum

sum=0

#判断$i <=100

while ((i<=100))

        do

                      ((sum=sum+i))

            ((i++))

done

#直接显示数值:5050

#echo $sum

#显示结果:sum=5050

#echo "sum=$sum"

#美观显示 totalsum is:5050

[ -n "$sum" ] && printf "totalsum is:$sum\n"

 

使用数学公式直接计算※※※※※
[oldboy@student ~]$  cat gongshi.sh 
#!/bin/sh
i=100
echo $((i*(i+1)/2))
---------
[oldboy@student ~]$  cat gongshi-2.sh 
#!/bin/sh
i=100
((sum=i*(i+1)/2))
echo $sum
---------
[oldboy@student ~]$  echo $((100*(100+1)/2))
5050

 

 脚本实例:升降显示数值

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        :升序显示

#Version  :版本 V1.1

#Update           :2016-11-22 15:04:12

 

i=1

sum=0

while ((i<=100))

        do

                ((sum=i))

                ((i++))

done

#echo $sum

#echo "sum=$sum"

[ -n "$sum" ] && printf "totalsum is:$sum\n"

 

 

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        :降序显示

#Version  :版本 V1.1

#Update           :2016-11-22 15:04:12

 

i=1

sum=0

while ((i<=100))

        do

                ((sum=i))

                ((i--))

done

#echo $sum

#echo "sum=$sum"

[ -n "$sum" ] && printf "totalsum is:$sum\n"

 

 

脚本实例:网站负载均衡测试

 

 

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        :网站测试10秒链接一次

#Version  :版本 V1.1.1

#Update           :2016-11-22 15:04:12

 

while trie

         do

                  curl -I -s http://1.1.1.com/|head -l

                  sleep 10

done

 

 

 

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        :网站测试2秒链接一次,有判断结果

#Version  :版本 V1.1.2

#Update           :2016-11-22 15:04:12

 

while true

         do

                  ststus='curl -I -s --connect -timeout 10 $1 |head -l|cut -d " " -f 2'

                  if [ "$status" = "200" ] ;then

                                   echo "this url is good"

                          else

                                   echo "this url is bad"

        

                  fi

                  sleep 2

done

 

 

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        : 网站测试2秒链接一次,有判断结果

#Version  :版本 V1.1.3

#Update           :2016-11-22 15:04:12

#调用系统函数

. /etc/init.d/functions

while true

         do

                  ststus='curl -I -s --connect -timeout 10 $1 |head -l|cut -d " " -f 2'

                  if [ "$status" = "200" ] ;then

                                   echo "this url is good"  /bin/true

                          else

                                   echo "this url is bad"       /bin/false

        

                  fi

                  sleep 2

done