关于Linux上的计时程序的一个小问题:time命令允许测量程序的执行时间:
[ed@lbox200 ~]$ time sleep 1
real 0m1.004s
user 0m0.000s
sys 0m0.004s
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.但是如果我尝试将输出重定向到文件,它就会失败.
[ed@lbox200 ~]$ time sleep 1 > time.txt
real 0m1.004s
user 0m0.001s
sys 0m0.004s
[ed@lbox200 ~]$ cat time.txt
[ed@lbox200 ~]$
Run Code Online (Sandbox Code Playgroud)
我知道还有其他的时间实现,使用-o选项来编写文件,但我的问题是关于没有这些选项的命令.
有什么建议 ?
Jan*_*ary 246
尝试
{ time sleep 1 ; } 2> time.txt
Run Code Online (Sandbox Code Playgroud)
它将"time"的STDERR和你的命令结合到time.txt中
或者使用
{ time sleep 1 2> sleep.stderr ; } 2> time.txt
Run Code Online (Sandbox Code Playgroud)
它将STDERR从"sleep"放入文件"sleep.stderr",只有"time"的STDERR进入"time.txt"
sam*_*hen 36
包裹time和命令您在一组括号中计时.
例如,以下时间ls将结果ls和时间结果写入outfile:
$ (time ls) > outfile 2>&1
Run Code Online (Sandbox Code Playgroud)
或者,如果您想将命令的输出与捕获的输出分开time:
$ (time ls) > ls_results 2> time_results
Run Code Online (Sandbox Code Playgroud)
cma*_*ter 30
简单.GNU time实用程序有一个选项.
但是你必须确保你没有使用你的shell的内置time命令,至少bash内置不提供该选项!这就是为什么你需要提供time实用程序的完整路径:
/usr/bin/time -o time.txt sleep 1
Run Code Online (Sandbox Code Playgroud)
Mar*_*ark 13
如果您关心命令的错误输出,您可以在使用内置时间命令的同时将它们分开.
{ time your_command 2> command.err ; } 2> time.log
Run Code Online (Sandbox Code Playgroud)
要么
{ time your_command 2>1 ; } 2> time.log
Run Code Online (Sandbox Code Playgroud)
如您所见,命令的错误转到文件(因为stderr用于time).
不幸的是你不能把它发送到另一个句柄(如3>&2),因为它不会再存在于其他句柄之外{...}
也就是说,如果你可以使用GNU时间,那就去做@Tim Ludwinski所说的.
\time -o time.log command
Run Code Online (Sandbox Code Playgroud)
小智 7
由于'time'命令的输出是错误输出,因此将其重定向为标准输出将更直观地进行进一步处理.
{ time sleep 1; } 2>&1 | cat > time.txt
Run Code Online (Sandbox Code Playgroud)
&>out time command >/dev/null
Run Code Online (Sandbox Code Playgroud)
在你的情况下
&>out time sleep 1 >/dev/null
Run Code Online (Sandbox Code Playgroud)
然后
cat out
Run Code Online (Sandbox Code Playgroud)
如果您使用的是GNU时间而不是内置的bash,请尝试
time -o outfile command
Run Code Online (Sandbox Code Playgroud)
(注意:GNU时间格式与bash内置格式略有不同).
我最终使用了:
/usr/bin/time -ao output_file.txt -f "Operation took: %E" echo lol
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85843 次 |
| 最近记录: |