我刚刚更新了我的 bash,现在我无法使用time time
在更新之前运行良好的命令。
思路time time cmd
是:一是time
bash内置函数,二time
是/usr/bin/time
程序。cmd
是要计时的程序。
的用法time time
简短易记,可以查看精细打印的用户/系统/实时和页面错误统计信息:
$ time time false
Command exited with non-zero status 1
0.00user 0.00system 0:00.01elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (1major+163minor)pagefaults 0swaps
real 0m0.035s
user 0m0.000s
sys 0m0.002s
第一行是 cmd 的退出状态(如果非零),第二行是来自 的紧凑时间统计,第三行是来自pagefault 统计/usr/bin/time
的附加信息。/usr/bin/time
然后是 bash 的三行,time
其中包含更详细的时间信息(点后 3 位数字)。
问题是:为什么较新的 bash 会忽略第二个time
/usr/bin/time?发生了什么变化,为什么?
如何修补 bash 以返回旧式的解析时间?
我认为bash的parse.y
野牛文件发生了变化。这里的差异http://code.metager.de/source/diff/gnu/bash/parse.y?r2=%2Fgnu%2Fbash%2Fparse.y%40509a4430ae72aec10896713435e84f5b27675763&r1=%2Fgnu%2Fbash%2Fparse.y%4089a92869e506aba4efcab054563