[fakename]$ { time true; } 2> test.log
[fakename]$ cat test.log
real 0m0.000s
user 0m0.000s
sys 0m0.000s
似乎time
正在写标准错误。我尝试过重定向其他文件描述符;总是导致打印时间。
我得出结论,time
写给stderr。为什么会这样呢?
答案 0 :(得分:2)
因为写入标准输出将无法计时管道。时间输出将在管道中消失,并可能由于意外的输入而在管道的下方导致错误。