How to store a sum result into a variable in awk script

时间:2017-03-02 23:31:17

标签: bash shell awk

{
      for i in 1 2 3 4 5 6; do
      netperf -H 10.0.1.2 -P 0 -l $1 &
      done;
      wait;
} | awk '{ sum = sum + $5 } END {print sum, "Mbps Upstream"}'

1 个答案:

答案 0 :(得分:-3)

awk变量和bash变量是不同的,彼此无关。 awk是一个具有变量概念的程序,它在内部存储变量及其值。 bash是另一个程序,它也具有变量的概念,并在内部存储其变量及其值。如果你买了一个茶壶并把它放在你的厨房,这并不能让我在我的厨房里放一个茶壶。

你可以将awk的总和打印到stdout,抓住它并将其存储到bash的总和中:

sum=`{ for i in 1 2 3 4 5 6; do netperf -H 10.0.1.2 -P 0 -l $1 & done; wait; } | awk '{ sum = sum + $5 } END {print sum}'`