|
根据man里说的,time命令是将结果由标准出错输出,我现在想处理time一个命令的结果,不知该咋办。
标准time输出结果如下:
- $time dd if=/dev/hda of=512k.data bs=512 count=1024
- ...
- real 0m0.016s
- user 0m0.012s
- sys 0m0.004s
复制代码
试图用管道获取time输出,如下
- $time dd if=/dev/hda of=512k.data bs=512 count=1024 | grep user
- ...
- real 0m0.016s
- user 0m0.012s
- sys 0m0.004s
复制代码
正如一开始所说的,time是将结果输出到标准错误,所以上面的命令显然没有效果。
另外的尝试,试图将time的标准错误重定向到标准输出,然后交给grep处理:
- $time dd if=/dev/hda of=512k.data bs=512 count=1024 2>&1 | grep user
复制代码
结果仍然是
- ...
- real 0m0.029s
- user 0m0.012s
- sys 0m0.008s
复制代码
甚至,试图将time的结果输出到文件也失败
- $ time dd if=/dev/hda of=512k.data bs=512 count=1024 > result
- 1024+0 records in
- 1024+0 records out
- 524288 bytes (524 kB) copied, 0.014045 seconds, 37.3 MB/s
- real 0m0.019s
- user 0m0.000s
- sys 0m0.020s
- $ cat result
- $
- $ time dd if=/dev/hda of=512k.data bs=512 count=1024 > result 2>&1
- 1024+0 records in
- 1024+0 records out
- 524288 bytes (524 kB) copied, 0.012408 seconds, 42.3 MB/s
- real 0m0.017s
- user 0m0.004s
- sys 0m0.016s
- $ cat result
- 1024+0 records in
- 1024+0 records out
- 524288 bytes (524 kB) copied, 0.010668 seconds, 49.1 MB/s
复制代码
看结果,shell把dd的结果重定向了,但time的结果如何重定向?
我现在就想要time输出结果的user和sys那两行,那位朋友知道如何解决?
多谢指教 |
|