shell编程的三种循环(for,while,until)详解,及其应用案例思路分析 |
您所在的位置:网站首页 › if语句结构图 › shell编程的三种循环(for,while,until)详解,及其应用案例思路分析 |
本文共 2832 字,大约阅读时间需要 9 分钟。 目录 一. for循环 1.1 for循环的语法格式 1.11 列表循环列表for循环:用于将一组命令执行已知的次数 基本语法格式: for value in { list} docommandcommand done 或者for value in a b c do command1command2 done注意事项: 1.12 类C风格的for循环基本语法结构 for ((expr1;expr2;expr3))do commanddone例:for ((i=1;i /dev/nulldone 1.53 局域网内脚本检查主机网络通讯 1.需求:写一个脚本,局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里,以10.1.1.1-10.1.1.10 2.落地实现 #!/bin/bash#定义变量ip=10.1.1#循环去ping主机的IPfor i in { 1..10}do ping -c 3 $ip.$i &> /dev/null if [ $? -eq 0 ];then echo "$ip.$i is ok" > /opt/ip_up.txt else echo "$ip.$i is down" > /opt/ip_down.txt fi done 二. while循环语句特点:条件为真就进入循环,条件为假就退出循环 2.1 while 循环语法格式1.while循环的语法格式 while 表达式 do command donewhile [ 1 -eq 1 ] 或者(( 1 = 1 )) docommandcommand done 2.2 while循环的应用实例 2.21 while循环脚本同步时间 1.具体需求1.写一个脚本,30秒同步一次系统时间,时间同步服务器为ntp1.aliyun.com 2.如果同步失败,则进行邮件报警,每次失败都报警 3.同步成功,也进行邮件通知,但是成功100次才通知一次 2.思路1.每隔30秒同步一次时间,改脚本是一个死循环 2.同步失败发送邮件(ntpdate 20.0.0.26;rate -s 20.0.0.26) 3.同步成功100次发送邮件(定义一个变量保存成功的次数) 3.实现脚本 #!/bin/bash#改脚本用于时间同步NTP=ntp1.aliyun.comcount=0while truedo ntpdate $NTP &> /dev/null if [ $? -ne 0 ];thenecho "系统同步时间失败" | mail -s "需要检查系统同步时间" root@localhost else let count++ if [ $count -eq 100 ];then echo "时间同步成功" | mail -s "时间同步没有问题" root@localhost fi fisleep 30done 三. until语句结构特点:重复测试某个条件,只要条件不成立则反复执行 3.1 until语句的语法格式 until 条件测试操作do 命令序列done 3.2 until语法结构流程图 3.3 until语句的应用实例 1.具体需求1)使用until语句批量创建10个用户,要求stu1-stu5用户的UID分别为1001-1005; 2)stu6-stu10用户的家目录分别在/rhome/stu6-/rhome/stu10 2.思路1)创建用户语句:useradd -u | useradd -d 2)使用循环语句(until)批量创建用户 3)判断用户前5个和后5个,条件判断语句 3.落地实现 if [ -d /rhome ];then echo "/rhome目录已存在"else mkdir /rhome && echo "/rhome不存在,已完成创建"fii=1 until [ $i -gt 5 ]do useradd stu$i -u $[1000+$i] echo 123 | passwd --stdin stu$i let i++doneuntil [ $i -gt 10 ]do useradd stu$i -d /rhome/stu$i echo 123 | passwd --stdin stu$i let i++done转载地址:https://blog.csdn.net/weixin_48192495/article/details/108156601 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解! |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |