【就业班作业】【第八周】编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"

编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"

一、for循环:

注:& 符号可以并发执行,wait 等待0s退出进程

#!/bin/bash
#
NetId=192.168.0.
for HostId in {1..254};do
{
    if /bin/ping -c 1 -W 1 $NetId$HostId > /dev/null;then
        echo "$NetId$HostId lived,Ping Test Successed"
    else
        echo "$NetId$HostId not lived,Ping Test Failed"
    fi

} &
done
wait

二、while 条件循环

#!/bin/bash
#
NetId=192.168.0.
declare -i HostId=1
while [ $HostId -le 254 ];do
{
/bin/ping -c 1 -W 1 $NetId$HostId > /dev/null if [ $? -eq 0 ];then echo "$NetId$HostId lived,Ping Test Successed" else echo "$NetId$HostId not lived,Ping Test Failed" fi
} & let HostId++ done
wait

三、执行效果

[root@localhost data]# ./fortestping.sh 
192.168.0.1 lived,Ping Test Successed
192.168.0.5 lived,Ping Test Successed
192.168.0.14 lived,Ping Test Successed
192.168.0.10 lived,Ping Test Successed
192.168.0.2 not lived,Ping Test Failed
192.168.0.3 not lived,Ping Test Failed
192.168.0.4 not lived,Ping Test Failed


[root@localhost data]#  ./whiletestping.sh 
192.168.0.5 lived,Ping Test Successed
192.168.0.1 lived,Ping Test Successed
192.168.0.14 lived,Ping Test Successed
192.168.0.10 lived,Ping Test Successed
192.168.0.4 lived,Ping Test Successed
192.168.0.12 lived,Ping Test Successed
192.168.0.3 not lived,Ping Test Failed
192.168.0.2 not lived,Ping Test Failed
192.168.0.11 not lived,Ping Test Failed

基本语法结构复习:

循环语句for
机制:依次将范围里的值赋值给变量;每次赋值执行一次循环;直到值用完;结束.
for 变量名 in 范围;do
     执行语句
done
范围:seq [start][step][end]、整数列表、glob(文件名列表)、命令

选择语句if、if-else

单分支
if 条件;then
   执行语句
fi

双分支
if 条件;then
   执行语句
else
   执行语句
fi

多多支
if 条件;then
    执行语句
elif 条件;then
    执行语句
elif 条件;then
    执行语句
.....
else
    执行语句
fi

while循环语句:

机制:进入循环之前,执行一次判断;每一次循环之后再做一次判断;
while 条件;do
      执行语句
done

进入条件:条件为true
退出条件:条件为false

***************************************************

(结束)

posted @ 2020-09-21 12:19  sankeya  阅读(280)  评论(0编辑  收藏  举报