我是shell脚本的新手,因此对linux命令知之甚少。我正在给主机敲了10次。我想知道,如何获得不。数据包成功传输。 E.g
ping -c 10 12.1.4.1
PING 12.1.4.1 (12.1.4.1) 56(84) bytes of data.
64 bytes from 12.1.4.1: icmp_seq=1 ttl=128 time=439 ms
64 bytes from 12.1.4.1: icmp_seq=2 ttl=128 time=577 ms
64 bytes from 12.1.4.1: icmp_seq=3 ttl=128 time=435 ms
64 bytes from 12.1.4.1: icmp_seq=4 ttl=128 time=483 ms
64 bytes from 12.1.4.1: icmp_seq=5 ttl=128 time=519 ms
64 bytes from 12.1.4.1: icmp_seq=6 ttl=128 time=487 ms
64 bytes from 12.1.4.1: icmp_seq=7 ttl=128 time=470 ms
64 bytes from 12.1.4.1: icmp_seq=8 ttl=128 time=516 ms
64 bytes from 12.1.4.1: icmp_seq=9 ttl=128 time=467 ms
64 bytes from 12.1.4.1: icmp_seq=10 ttl=128 time=544 ms
--- 12.1.4.1 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9013ms
rtt min/avg/max/mdev = 435.527/494.221/577.189/42.922 ms
输出应为10。
我可以将输出重定向到文件,然后使用cut / sed命令获取值" 10"收到的数据包,但是我想在ping命令之后在一行中执行。
答案 0 :(得分:0)
我们只需要选择包含单词“packets”的第四行:
ping -c 10 12.1.4.1 | egrep packets | cut -d" " -f4