我可以使用 来查看所有接口的下载和上传速度glances
。在network
部分中,我们可以看到Rx/s
和Tx/s
列,其中我可以看到 中的值Mbps
。
但是我想将该值存储在变量中。是否有其他命令可以提供当前速度(bps
、 或Kbps
或Mbps
),以便我可以将该值保存在 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