shell循环控制以及实战(检测主机是否存活脚本)
1,sleep N 脚本执行到该步休眠N秒
[root@CentOs shell]# cat ShellTest.sh
#!/bin/bash
for var in `seq 1 4`
do
echo $var
sleep 1(每隔一秒执行一次)
done
[root@CentOs shell]#
检测主机是否存活脚本:
[root@CentOs shell]# cat wz.sh
#!/bin/bash
for((;;))
do
ping -c1 $1 &>/dev/null
if [ $? == 0 ]
then
echo "`date +"%F %H:%M:%S"`:$1 is UP"
else
echo "`date +"%F %H:%M:%S"`:$1 is DOWN"
fi
sleep 3(生产环境建议一分钟以上!)
done
[root@CentOs shell]# bash wz.sh 192.168.0.107
2022-04-02 19:53:52:192.168.0.107 is UP
2022-04-02 19:53:55:192.168.0.107 is UP
2022-04-02 19:53:58:192.168.0.107 is UP
^C
[root@CentOs shell]#
2、continue跳过循环中的某次循环
例如:
循环1-4 ,当i=2时,跳过此次循环
[root@CentOs shell]# cat ShellTest.sh
#!/bin/bash
for ((i=0;i<=4;i++))
do
if (($i == 2))
then
continue
else
echo $i
fi
done
[root@CentOs shell]# bash ShellTest.sh
0
1
3
4
[root@CentOs shell]#
3,break中断此次循环
[root@CentOs shell]# cat ShellTest.sh
#!/bin/bash
for var in `seq 1 5`
do
if (($var == 3))
then
break
fi
echo $var
sleep 1
done
[root@CentOs shell]# bash ShellTest.sh
1
2
[root@CentOs shell]#
4、脚本退出命令:exit
作用: 退出程序并释放占用的系统资源
案例:
循环输出数字1-9,当循环到5时退出脚本。
案例代码
#!/bin/bash
for i in `seq 1 9`
do
echo $i
if [ $i -eq 5 ]
then
exit 0
fi
done
echo "执行完毕"