bash脚本平均值为两个值
问题描述:
我有一个bash脚本运行iperf并输出平均带宽,即3.80 Mbits/sec。我想要做的是获得这个输出作为连接速度的平均值。bash脚本平均值为两个值
所以,如果我有一个10兆的连接我想知道3.80兆位/秒是的,这么输出像
3.80 Mbits/sec 38%
我不知道如何做到这一点的。
我的脚本执行
iperf -c 1.1.1.1 >> /tmp/iperf.log
echo -e " \t $(awk '/Bandwidth/ {getline}; END{print $7, $8}' $iperflog"
返回
3.80 Mbits/sec
我想它返回
3.80 Mbits/sec 38%
答
下面一个例子与awk
:
[email protected]:~# echo "3.80 Mbits/sec" | awk '{printf "%s %s%%\n", $0, $1/(10.0/100)}'
3.80 Mbits/sec 38%
适用于你的脚本只是你的命令后添加awk
部分:
echo -e " \t $(awk '/Bandwidth/ {getline}; END{print $7, $8}' /tmp/iperf.log" | awk '{printf "%s %s%%\n", $0, $1/(10.0/100)}'
的问题是,'bash'不支持浮点运算,所以你需要一个语言或工具,做。最简单的可能是awk,但还有很多其他的。 – cdarke