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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。