如何查看当前接口/wifi 速度

如何查看当前接口/wifi 速度

我可以使用 来查看所有接口的下载和上传速度glances。在network部分中,我们可以看到Rx/sTx/s列,其中我可以看到 中的值Mbps

但是我想将该值存储在变量中。是否有其他命令可以提供当前速度(bps、 或KbpsMbps),以便我可以将该值保存在 bash 脚本中的变量中?

我想为wlan0界面做这个。

答案1

没有单个命令可以执行此操作。但是,你可以使用以下命令:

eval $( \
    iwconfig wlan0 | \
    egrep -o 'Bit Rate=[0-9]+ [^ ]+' | \
    sed -e 's/ /_/;s/=/="/;s/$/"/' \
    )
echo $Bit_Rate

目前,在我的系统上,我得到:

$ eval $(iwconfig wlan0 | egrep -o 'Bit Rate=[0-9]+ [^ ]+' | sed -e 's/ /_/;s/=/="/;s/$/"/')
$ echo $Bit_Rate
54 Mb/s

iwconfig wlan0输出一堆关于wlan0(尝试一下看看)的信息。

然后egrep匹配"Bit Rate=",后跟 1 个或多个数字、一个空格和 1 个或多个非空格。由于该-o选项,egrep仅输出匹配的字符串。

sed然后将第一个空白更改为下划线,将'='更改为'="',将行尾更改为'"',从而生成类似 的字符串Bit_Rate="54 Mb/s"

eval然后在当前 shell 中解释该字符串。

如需进一步了解,请阅读

for i in iwconfig egrep sed bash ; do  
    man $i
done

相关内容