如何将“time some_command”重复运行的输出发送到文件?

如何将“time some_command”重复运行的输出发送到文件?

如果我运行time uname -a | awk '{ print substr($3,1,9)" "$12 }',我会得到:

$ time uname -a | awk '{ print substr($3,1,9)" "$12 }'
4.15.0-70 x86_64

real    0m0.016s
user    0m0.003s
sys     0m0.016s
$ 

我想多次运行上述命令并将整个输出保存到文件中。所以我尝试了

for i in {1..10}; do time uname -a | \
awk '{ print substr($3,1,9)" "$12 }' >> uname.txt; done

但只会4.15.0-70 x86_64向文件发送十次uname.txt。每次运行时,的输出time都会发送到屏幕,而不会发送到uname.txt

那么我怎样才能捕获的输出timeuname.txt


我可以使用script,并且可以工作,但是输出并不漂亮:

(B[m(B[m(B[m4.15.0-70 x86_64

real    0m0.017s
user    0m0.013s
sys 0m0.007s
(B[m(B[m(B[m4.15.0-70 x86_64

real    0m0.015s
user    0m0.008s
sys 0m0.009s
(B[m(B[m(B[m4.15.0-70 x86_64

real    0m0.015s
user    0m0.008s
sys 0m0.008s

或者作为图像:

Geany 中显示的脚本输出部分

我知道如果没有更好的办法我可以把它清理干净。

答案1

您可以尝试以下操作:

for i in {1..10}; do 
  { time uname -a | awk '{ print substr($3,1,9)" "$12 }'; } &>> uname.txt
done

输出:

4.15.0-54 i686

real    0m0,009s
user    0m0,007s
sys 0m0,000s
4.15.0-54 i686

real    0m0,016s
user    0m0,005s
sys 0m0,004s
4.15.0-54 i686

...

相关内容