码迷,mamicode.com
首页 > 其他好文 > 详细

until、while

时间:2018-06-18 01:18:13      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:exp   ++   创建用户   echo   时间服务器   发邮件   进入   后台   for   

until 循环: 条件为真退出循环;条件为假进入循环 语法: until expr do command... done #!/bin/bash i=1 until [ $i -gt 5 ] do echo $i let i=$i+1 done #!/bin/bash i=5 until (( $i <1 )) do echo $i let i=$i-1 done demo1:批量创建用户stu1~stu3,家目录为/rhome/stuX,密码为123 #!/bin/bash dir=/rhome [ ! -d $dir ] && mkdir -p $dir i=1 until [ $i -gt 3 ] do useradd -d $dir/stu$i stu$i echo 123|passwd --stdin stu$i let i=$i+1 done while 循环:条件为假退出循环;条件为真进入循环 语法: while expr do command done #!/bin/bash i=1 while [ $i -le 5 ] do echo $i let i=$i+1 done #!/bin/bash i=5 while (( $i >= 1 )) do echo $i let i=$i-1 done 思考: i=1 用while打印5 4 3 2 1 demo1: 写一个30s同步一次时间服务器10.1.1.254的脚本,如果同步失败,则邮件报警,每次失败都报警;如果同步成功,也需要邮件通知,但是成功100次才通知一次 思路: 1、该脚本应该是一个死循环在后台执行 2、怎么样去同步时间 (命令) 3、根据命令所执行的结果判断是否成功; 4、如果失败直接发邮件;如果成功,统计成功次数,到100才发邮件 #!/bin/bash ip=10.1.1.254 count=0 while true do ntpdate $ip &>/dev/null if [ $? -ne 0 ];then echo ntpdate failed |mail -s "Check system date" root else let count++ if [ $count -eq 100 ];then echo ntpdate successed |mail -s "Check system date" root count=0 fi fi sleep 30 done #!/bin/bash ip=10.1.1.254 count=0 while true do ntpdate $ip &>/dev/null [ $? -ne 0 ] && echo ntpdate failed |mail -s "Check system date" root let count++ [ $[$count%100] -eq 0 ] && echo ntpdate successed |mail -s "Check system date" root sleep 30 done 以上脚本有问题,待完善 #!/bin/bash ip=10.1.1.254 count=0 while true do ntpdate $ip &>/dev/null if [ $? -ne 0 ];then echo ntpdate failed |mail -s "Check system date" root else let count++ [$[$count%100] -eq 0 ] && echo ntpdate successed |mail -s "Check system date" root fi fi sleep 30 done 总结: 12345 54321 for for ((i=1;i<=5;i++)) do echo -n $i done for i in 1 2 3 4 5 do echo -n $i done for i in {1..5} do echo -n $i done for i in `seq 5` do echo -n $i done for i do echo -n $i done ./for1.sh 1 2 3 4 5 until i=1 until [ $i -gt 5 ] do echo -n $i let i++ done i=5 until (( $i < 1 )) do echo -n $i let i-- done while i=1 while [ $i -le 5 ] do echo -n $i let i++ done echo i=5 while (( $i -ge 1 )) do echo -n $i let i-- done echo

until、while

标签:exp   ++   创建用户   echo   时间服务器   发邮件   进入   后台   for   

原文地址:https://www.cnblogs.com/skyzy/p/9194212.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!