我有一些以这种方式启动的命令:
./mycommand -arg=word
我测量执行时间并将输出写入文件:
/usr/bin/time -f "%K %e" ./mycommand -arg=word 2>file
但是,mycommand也有stderr
输出。因此,file
包含来自time
和mycommand
的混合数据。如何抑制mycommand
的输出并保存time
的数据?
答案 0 :(得分:2)
如果您的进程的性质足以使Shell启动不会过多地影响时间,则一种简单的方法是让Shell作为time
的子进程运行该方向:
/usr/bin/time -f "%K %e" sh -c '"$0" "$@" >/dev/null 2>&1' ./mycommand -arg=word
我还建议使用time
的bash内置版本,而不是外部版本,这样您就可以使用BashFAQ #32中记录的技巧:
TIMEFORMAT='%R' # replace for whatever is equivalent to your "%K %e"
timing=$(time { ./mycommand >/dev/null 2>&1; } 2>&1)