ping 192.168.1.1
这是我的命令的真实结果:
64 bytes from 192.168.1.1: icmp_seq=964 ttl=64 time=1018 ms
64 bytes from 192.168.1.1: icmp_seq=965 ttl=64 time=921 ms
64 bytes from 192.168.1.1: icmp_seq=966 ttl=64 time=847 ms
64 bytes from 192.168.1.1: icmp_seq=967 ttl=64 time=866 ms
64 bytes from 192.168.1.1: icmp_seq=968 ttl=64 time=895 ms
64 bytes from 192.168.1.1: icmp_seq=969 ttl=64 time=858 ms
64 bytes from 192.168.1.1: icmp_seq=970 ttl=64 time=886 ms
64 bytes from 192.168.1.1: icmp_seq=971 ttl=64 time=890 ms
64 bytes from 192.168.1.1: icmp_seq=972 ttl=64 time=888 ms
64 bytes from 192.168.1.1: icmp_seq=973 ttl=64 time=910 ms
64 bytes from 192.168.1.1: icmp_seq=974 ttl=64 time=915 ms
64 bytes from 192.168.1.1: icmp_seq=975 ttl=64 time=937 ms
64 bytes from 192.168.1.1: icmp_seq=976 ttl=64 time=933 ms
64 bytes from 192.168.1.1: icmp_seq=977 ttl=64 time=947 ms
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
64 bytes from 192.168.1.1: icmp_seq=985 ttl=64 time=1.09 ms
64 bytes from 192.168.1.1: icmp_seq=986 ttl=64 time=2.02 ms
64 bytes from 192.168.1.1: icmp_seq=987 ttl=64 time=3.37 ms
64 bytes from 192.168.1.1: icmp_seq=988 ttl=64 time=1.08 ms
64 bytes from 192.168.1.1: icmp_seq=989 ttl=64 time=2.87 ms
64 bytes from 192.168.1.1: icmp_seq=990 ttl=64 time=1.11 ms
64 bytes from 192.168.1.1: icmp_seq=991 ttl=64 time=1.39 ms
64 bytes from 192.168.1.1: icmp_seq=992 ttl=64 time=1.11 ms
64 bytes from 192.168.1.1: icmp_seq=993 ttl=64 time=1.10 ms
由于某些未知原因,有时我的 WiFi 连接变得非常慢,主要原因是 ping 时间。
我应该手动断开我的 WiFi 并重新连接。
我在 Ubuntu 20.04 LTS 上。
我想让它自动化。这是我想出的脚本片段。但我不能把它们放在一起:
# Read time using awk
ping 192.168.1.1 | awk '{gsub("time=", ""); print $7}'
# Disconnecting from WiFi
nmcli con down WiFiName
# Reconnecting to WiFi
nmcli device wifi connect
我试过这个,但它不起作用:
while read Line; do
echo "read line"
echo $Line
done <<< $(ping 192.168.1.1)
基本上,我坚持将ping
标准输出重定向到 while 循环,并且坚持使用该awk
命令聚合平均时间。
我怎样才能将它们结合在一起?
更新
对于任何对最终脚本感兴趣的人,请在下面查看我的答案。
管道或
while
-loop 正在等待输入,但您的ping
命令永远不会结束。您可以使用
-c
或-w
标记:例如
但是要获得平均时间,您可以更轻松地解析摘要:
这是我想出的最终脚本: