1. 语法结构
条件为真的就进入循环,为假就退出循环
while 表达式
do
command
done
while [ 1 -eq 1 ] huo (( 1>2 ))
do
command
done
1.1 打印1-5
i=1
while [ $i -le 5 ]
do
echo $i
let i++
done
1.2 利用while计算1-50的偶数和
#!/bin/bash
sum=0
i=2
while [ $i -le 50 ]
do
let sum=sum+i
let i+=2
done
echo "1-50的和为:$sum"
2. 应用案例
写一个30秒同步一次时间,向同步服务器10.1.1.250的脚本,如果同步失败,则进行邮件报警,每次失败都报警;同步成功,也进行邮件通知,但是成功100次才通知一次。
#!/bin/bash
#定义变量
count=0
ntp_server=10.1.1.250
while true
do
rdate -s $ntp-server &>/dev/null
if [ $? -ne 0 ];then
echo "system date failed" |mail -s 'check system date' root@localhost
else
let count++
if [ $[$count%100] -eq 0 ];then
echo "system date successfull" |mail -s 'check system date' root@localhost && count=0
fi
fi
sleep 3
done
以上脚本还有更多的写法,课后自己完成
3. until循环
3.1 语法结构
条件为假进入循环,条件为真就退出循环
until expression [ 1 -eq 1 ]
do
command
done
i=1
until [ $i -gt 5 ]
do
echo $i
let i++
done