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 "执行完毕"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通