我希望将进程的时间重定向到文件,然后进程本身会重定向到文件。以下是我尝试过的内容:
time &> ltime.txt echo | ls -l > ls-l.txt
创建了两个文件(ltime.txt
和ls-l.txt
),但ltime.txt
为空。
time
仍然输出到屏幕,
这在我的情况下很好,
但由于&>
:
real 0m0.034s
user 0m0.000s
sys 0m0.004s
(我所知道的全部来自http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html)
有什么建议吗?
答案 0 :(得分:1)
也许你被内置于shell的time
所困扰?试试这个:
/usr/bin/time ls -l > ls-l.txt 2> ltime.txt
来自man time
:
Users of the bash shell need to use an explicit path in order to run
the external time command and not the shell builtin variant.
[已更新以添加]
显然time
的位置并非完全标准。对于一次性使用(以及一般信息)which time
将告诉您它在哪里。对于便携式脚本,您可以说command time ...
。 (command
是一个内置的shell,它告诉shell忽略内置函数。)
答案 1 :(得分:1)
尝试
{ time ls -l > ls-l.txt ; } &> ltime.txt
即使使用内置函数,花括号也会捕获输出。