echo "$(time perlscript > /dev/null)" | mawk '{ print $9 }'
返回 echo 的整个输出,而不是我希望的第九列。为什么?
如果你想对time
结果做一些事情,你必须将它包装在一个子shell中并将stderr重定向到stdout,如下所示:
$ (time sleep 0) 2>&1 | awk '{print $2}'
0m0.006s
0m0.000s
0m0.000s
因为这样的事情似乎忽略了我:
$ time sleep 0 | grep real
real 0m0.011s
user 0m0.000s
sys 0m0.008s
这也是:
$ time sleep 0 2>&1 | grep real
real 0m0.012s
user 0m0.000s
sys 0m0.004s