我的任务是在Linux机器上使用ping和grep工具的组合来生成一个在networking中生存的ip地址列表,我只想显示那些live。 这是我的代码到目前为止:
#!/bin/sh COUNTER=1 while [ $COUNTER -lt 254 ] do ping 10.1.0.$COUNTER -c 1 COUNTER=$(( $COUNTER + 1 )) done
我建议你使用nmap:
nmap -sP 10.1.0.*
为您提供网络中的所有IP。
如果你必须使用grep和table:
nano liveAddress.sh
用代码实现:
#!/bin/sh COUNTER=1 while [ $COUNTER -lt 254 ] do ping -c 1 10.1.0.$COUNTER | grep PING | awk '{print $2}' COUNTER=$(( $COUNTER + 1 )) done
保存(ctrl + o)并退出(ctrl + x)。
chmod +x liveAddress.sh ./liveAddress.sh
这给你的机器联网unga网络。
首先,为ping添加1秒的限制
#!/bin/sh COUNTER=1 while [ $COUNTER -lt 254 ] do ping -w1 10.1.0.$COUNTER -c 1 COUNTER=$(( $COUNTER + 1 )) done
然后命名你的脚本s.sh
. s.sh | grep '1 received' -B1 | awk {'print $2'}
最后,删除这个脚本并使用nmap; )
为什么你需要使用grep
? 只需稍加改动即可找到所有活着的ips:
#!/bin/bash COUNTER=1 while [ $COUNTER -lt 254 ] do ping -w1 10.1.0.$COUNTER -c 1 if [ $? -eq 0 ];then echo "10.1.0.$COUNTER" fi COUNTER=$(( $COUNTER + 1 )) done