为什么`time` Bash内置函数会写入stderr?

时间:2018-08-01 21:38:45

标签: bash

[fakename]$ { time true; } 2> test.log 
[fakename]$ cat test.log

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

似乎time正在写标准错误。我尝试过重定向其他文件描述符;总是导致打印时间。

我得出结论,time写给stderr。为什么会这样呢?

1 个答案:

答案 0 :(得分:2)

因为写入标准输出将无法计时管道。时间输出将在管道中消失,并可能由于意外的输入而在管道的下方导致错误。