需求:
编写check_host.sh脚本满足以下条件
用此脚本检测有哪几台与您当前主机直连主机是否网络通常
如果网络通常请显示主机的ip列表
脚本代码:
#!/bin/bash
NET=192.168.1. ## 所在局域网网段
for IP in {99..254} ## IP主机地址范围这里写为99-254
do
if `ping -c2 -w2 $NET$IP &> /dev/null` ## ping该网段的IP范围内主机
then echo "$NET$IP is up" ## ping通则显示在shell界面
else &> /dev/null ## 如果没有ping通不显示在shell界面
fi
done
while循环语句做此实验:
#!/bin/bash
NET=192.168.1. ## 所在局域网网段
#for IP in {99..254}
IP=98 ## 这里是为了检测99开始的,while语句中的循环语句是IP++,所以IP初始值给定为98
while [ $IP -lt 254 ] ##while循环,当IP小于254时,一直循环
do
let IP++ ##累加,每次+1
if `ping -c2 -i0.2 -w2 $NET$IP &> /dev/null` ## -c表示ping两次,-i表示每隔0.2msping一次,-w表示等待时间为2ms
then echo -e "$NET$IP is \033[32mup\033[0m" ## 可以ping通的主机显示up, \033[32mup\033[0m固定格式为绿色,0m表示关闭不让颜色往后边顺延
else echo -e "$NET$IP is \033[31mdown\033[0m" ## 不能ping通的主机显示down, \033[31mup\033[0m固定格式为红色
fi
done