如何在此文件中找到并存储"RX bytes:"
和"TX bytes:"
后面的两个数字作为变量?
我想使用OpenWrt路由器在简单的当前带宽监视器bash脚本中使用theese值进行计算。
的/ dev / BAND1:
br-lan Link encap:Ethernet HWaddr
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3848954 errors:0 dropped:21234 overruns:0 frame:0
TX packets:4213574 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1206316927 (1.1 GiB) TX bytes:3385060741 (3.1 GiB)
感谢您的帮助!
答案 0 :(得分:3)
例如,RX字节,你可以:
rxBytes=$(yourcmd|grep -Po '(?<=RX bytes:)\d+')
用TX替换RX你得到另一个变量
修改强>
你也可以使用awk:
rxBytes=$(awk -F'RX bytes:' 'NF>1{sub(/ .*$/,"",$2);print $2}')
接收RX - &gt; TX得到另一个。
答案 1 :(得分:1)
#!/bin/bash
N=(`ifconfig p2p1 | sed -n 's/.*RX bytes:\([0-9]*\) .*TX bytes:\([0-9]*\).*/\1\n\2/p'`)
echo Bytes received ${N[0]}
echo Bytes sent ${N[1]}
这是通过一次调用ifconfig来实现的,如果你想同时轮询计数器,这可能很重要。