使用/ usr / bin / time时如何忽略程序的输出?

时间:2010-10-27 12:45:11

标签: unix shell time profiling io-redirection

我想知道程序运行了多长时间,所以我尝试了“/ usr / bin / time ./program> / dev / null”。 但很快我发现它显示程序的输出到stderr。我尝试了“/ usr / bin / time ./program> / dev / null 2>& 1”,但是/ usr / bin / time的输出没有出现。 所以我的问题是,如何忽略程序的输出,并保持时间的输出。

非常感谢。

2 个答案:

答案 0 :(得分:7)

使用-o标志将输出从时间发送到其他内容,然后stderr。例如,如果您仍想在屏幕上显示它:

/usr/bin/time -o /dev/tty ./program >/dev/null 2>&1

或者,如果您想要stdout输出非常糟糕:

/usr/bin/time sh -c './program >/dev/null 2>&1'

或类似的。但是,现在您还要测量shell启动过程的时间,这可能是也可能不是问题。

答案 1 :(得分:1)

(无法发表评论)

使用子shell可能更好:

/usr/bin/time ( ./program > /dev/null 2>&1 ) 2>&1

或者更好的是复合构造:

/usr/bin/time { ./program > /dev/null 2>&1; } 2>&1