while循环语句实战

while循环语句与for循环功能类似,主要用于对某个数据域进行循 环读取、对文件进行遍历,通常用于循环某个文件或者列表,满足循环 条件会一直循环,不满足则退出循环,其语法格式以while…do开头, done结尾。语法格式如下:

while(表达式)
do
      语句1
done

while循环语句shell脚本编程案例如下。

(1)循环打印BAT企业官网,read指令用于读取行或者读取变 量,代码如下:

#!/bin/bash
while read line 
do 
    echo $line 
done<test.txt

test.txt的内容如下

www.baidu.com 
www.taobao.com 
www.qq.com

(2)while无限每秒输出Hello World,代码如下:

#!/bin/bash
while sleep 1
do 
      echo -e "\033[32mlHel1o World.\033[0m"
done

(3)循环打印1~100数字,expr用于运算逻辑工具,代码如下:

#!/bin/bash
i=0
while ((i<=100))
do 
     echo $i 
     i='expr $i+1'
done

(4)while循环求1~100的总和,代码如下:

#!/bin/bash
# auto sum 1100
j=0
i=1
while ((i<=100))
do
      j=' expr $i + $j'
      ((i++))
done
echo   $j

(5)while循环逐行读取文件,代码如下:

#!/bin/bash
while read line 
do 
      echo $line; 
done </etc/hosts

(6)while循环判断输入IP正确性,代码如下:

#!/bin/bash
# Check IP Address 
read -p "Please enter ip Address, example 192.168.0.11 ip"; IPADDR 
echo $IPADDR|grep -v "[ Aa-Zz]"|grep --color -E "([0-9]{1,3\.){3)[0-9]{1,3}"
while [ $? -ne 0 ]
do 
            read -p "Please enter ip Address, example 192,168.0.11 ip": IPADDR
            echo  $IPADDR|grep -v "[ Aa-Zz]"|grep --color -E "([0-9]{1,3.){3)[0-9](1,3)"
done

(7)每5s循环判断/etc/passwd是否被非法修改,代码如下:

#!/bin/bash
# Check File to change
FILES="/etc/passwd"
while true 
do
       echo "The Time is ' date+%F-%T"
       OLD=' md5sum $FILESlcut-d""-f1'
       sleep5
       NEW=' md5sum $FILES|cut -d" " -f 1'
        if [ [  $OLD != $NEW ]]; then 
                  echo  "The $FILES has been modified."
        fi 
done

(8)每10s循环判断wxj用户是否登录系统,代码如下:

#!/bin/bash
# Check File to change.
USERS="wxj"
while true 
do 
           echo"The Time is ' date+%F-%T"
           sleep10
           NUM=' wholgrep"$USERS"Iwc-1'
           if   [[  $NUM  -ge 1 ]];  then 
                        echo   "The $USERS is login in system."
           fi 
done

发表评论

后才能评论