2

我想将进程的时间重定向到文件,进程本身重定向到文件。这是我尝试过的:

time &> ltime.txt echo | ls -l > ls-l.txt

两个文件 (ltime.txtls-l.txt) 均已创建,但ltime.txt为空。

time仍然输出到屏幕,这在我的情况下很好,但我希望它会这样做,因为&>

    real    0m0.034s
    user    0m0.000s
    sys     0m0.004s

(我所知道的一切都来自http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

有什么建议么?

4

2 回答 2

1

也许你被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 忽略内置函数。)

于 2013-10-15T17:48:28.813 回答
1

尝试

{ time ls -l > ls-l.txt ; }  &> ltime.txt 

即使使用内置,花括号也会捕获输出。

于 2013-10-15T20:08:16.020 回答