0

如何在此文件中查找"RX bytes:"和存储两个数字,并将其存储为变量?"TX bytes:"我想使用 OpenWrt 路由器在简单的当前带宽监视器 bash 脚本中计算这些值。

/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)

感谢您的帮助!

4

2 回答 2

3

例如,RX 字节,您可以:

rxBytes=$(yourcmd|grep -Po '(?<=RX bytes:)\d+')

用 TX 替换 RX 你得到另一个变量

编辑

您也可以使用 awk:

rxBytes=$(awk -F'RX bytes:' 'NF>1{sub(/ .*$/,"",$2);print $2}')

chg RX -> TX 得到另一个。

于 2013-05-29T13:40:27.437 回答
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 就可以做到这一点,这可能仅在您想同时轮询计数器时才重要。

于 2013-05-29T13:47:00.323 回答