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 "执行完毕"

 
 
 
 
 
 

 

posted @ 2022-04-03 10:32  屯子里唯一的架构师  阅读(286)  评论(0编辑  收藏  举报