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