通过ICM的ping命令对局域网进行扫描,以探测那些能够回复消息的主机地址
$1——命令行的第一个参数,如果不输入参数或者为空,执行then下面的 打印使用方法;如果输入参数,执行esle后面的
seq——注意两侧的符号不是单引号 是tab键上方的
for循环,1到20。
for x in `seq 1 20`; do 能够让脚本程序把x变了从1逐次迭代到20.与此同时它还会执行20次循环体,循环体尾部使用done
if末尾使用fi
ping -c 1 -c设置为1即每个ip 只ping一次
提炼数据
首先 grep筛选 返回64的即主机回复的
然后cut 以空格为分隔符计算 提取第四列
然后使用 sed ‘s/.$//‘ 删除每行最后的冒号
如果想要将主机地址保存
>>文件名
#!/bin/bash if [ "$1" == "" ] then echo "Usage: ./pingscript.sh [network]" echo "example: ./pingscript.sh 192.168.20" else for x in `seq 1 20`; do ping -c 1 $1.$x | grep "64 bytes" |cut -d" " -f4 | sed ‘s/.$//‘ >>/opt/qi/ping done fi