shell ping函数 一例ping脚本,可以实现交互,挺不错的,分享给大家。
代码:
复制代码代码示例:
#!/bin/bash
#2013-01-06 14:00:00 #site: www.it.net.cn # set -u #set -x ping_fun() { d_network=192.168.1 echo -n "input the network(default $d_network):" read network : ${network:=$d_network} echo "network:$network" d_hostip_beg=1 d_hostip_end=254 echo -n "input the hostip(default $d_hostip_beg $d_hostip_end):" read hostip_beg hostip_end : ${hostip_beg:=$d_hostip_beg} : ${hostip_end:=$d_hostip_end} echo "hostip_beg:$hostip_beg" echo "hostip_end:$hostip_end" count=3 for ((hostip=$hostip_beg;hostip<=$hostip_end;hostip++));do host=$network.$hostip echo "开始ping检测$host" ping -c $count $host &>/dev/null if [ $? = 0 ];then echo "$host is up" else sleep 3 ping -c $count $host &>/dev/null if [ $? = 0 ];then echo "$host is up" else echo "$host is down" fi fi done #echo "执行完毕" exit 0 } main() { echo "----开始执行ping程序检测----" ping_fun } main exit 0
附,Linux下shell ping指定ip段
复制代码代码示例:
#!/bin/bash
for a in {1..254} #或$(seq 1 254)或for(()) do if ping -w 1 -c 1 192.168.1.$a | grep "100%" >/dev/null #ping一次变量的ip地址 (c1)ping一次 ping等待时间长 定义参数 –w –l 等待超时的时间为1秒, then echo "192.168.1.$a is Not reachable" else echo "192.168.1.$a is reachable" fi done |