很多人可能遇到这样的问题,想把time命令的统计结果重定向至一个文件,而不要它所测量命令的输出。比如:
$ time ls
autotest.sh clustalw
real 0m0.004s
user 0m0.000s
sys 0m0.004s
如果直接用>,即:
$ time ls > tmp
autotest.sh clustalw
real 0m0.004s
user 0m0.000s
sys 0m0.004s
那么tmp得到的内容是:
autotest.sh clustalw
real 0m0.004s
user 0m0.000s
sys 0m0.004s
也就是并没有将ls的结果排除。这是因为time将> tmp看成了ls的参数。
man time可以发现有个-o (--output=FILE)来指定time的输出文件,但是
$ time -o tmp ls
报错:
-o: command not found
问题在于支持-o的是GNU time,而默认使用的是shell自带的time,解决办法很简单:
/usr/bin/time -o tmp ls
即写全路径强制使用GNU time.
没有评论:
发表评论