#!/bin/bash IP=192.168.1 #定义变量 for i in `seq 0 255` #for循环,查找192.168.1.0-255的所有地址 #for i in 192.168.1.{1,254} do ping -c 2 $IP.$i > /dev/null 2>&1 #ping 只发两个包,要不然不会自动结束,另外将屏幕输出信息重定向 if [ `echo $?` -eq 0 ];then #使用 echo$?判断命令执行结果的返回值 echo -n " $IP.$i is online " else echo -n " $IP.$i is offline " fi done这种查找方法比较简单,当然还有其他方法,如果要通过提取关键字的话,还需要使用多个管道符,相对来说降低了处理速度,所以不建议使用那种方式。