关于在Linux上计时程序的一个小问题:time命令允许测量程序的执行时间:[ed@lbox200 ~]$ time sleep 1real 0m1.004suser 0m0.000ssys 0m0.004s哪个工作正常。但是,如果我尝试将输出重定向到文件,它将失败。[ed@lbox200 ~]$ time sleep 1 > time.txtreal 0m1.004suser 0m0.001ssys 0m0.004s[ed@lbox200 ~]$ cat time.txt [ed@lbox200 ~]$ 我知道还有其他一些带有选项-o的时间实现,但是我的问题是关于没有那些选项的命令。有什么建议么 ?
3 回答
慕森卡
TA贡献1806条经验 获得超8个赞
将time您要计时的命令和命令放在一组括号中。
例如,以下时间ls将的结果ls和计时的结果写入outfile:
$ (time ls) > outfile 2>&1
或者,如果您想将命令的输出与捕获的输出分开time:
$ (time ls) > ls_results 2> time_results
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
尝试
{ time sleep 1 ; } 2> time.txt
将“时间”的STDERR和您的命令组合到time.txt中
或使用
{ time sleep 1 2> sleep.stderr ; } 2> time.txt
将来自“睡眠”的STDERR放入文件“ sleep.stderr”,只有来自“时间”的STDERR进入“ time.txt”
12345678_0001
TA贡献1802条经验 获得超5个赞
如果您关心命令的错误输出,则可以在仍使用内置时间命令的情况下像这样将它们分开。
{ time your_command 2> command.err ; } 2> time.log
要么
{ time your_command 2>1 ; } 2> time.log
如您所见,该命令的错误进入了一个文件(因为stderr用于time)。
遗憾的是,您无法将其发送到另一个句柄(如3>&2),因为该句柄将不再存在{...}
就是说,如果您可以使用GNU时间,请执行@Tim Ludwinski所说的。
\time -o time.log command
- 3 回答
- 0 关注
- 1347 浏览
添加回答
举报
0/150
提交
取消