我有一些命令以这种方式启动:
./mycommand -arg=word
我测量执行时间并将输出写入文件:
/usr/bin/time -f "%K %e" ./mycommand -arg=word 2>file
但是,mycommand也有stderr
输出。因此file
包含来自两者(time
和mycommand
(的混合数据。如何抑制mycommand
输出并保存time
数据?
如果您的流程的性质是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)