问题描述:
在shell脚本中,我想使用time命令统计某个程序执行时间,但是执行脚本后,time命令那一行根本不执行。但是将该命令单独执行就能得到想要的结果。
原因:
Bash官方文档说,time命令是一个关键字;在Bash的2.0版本中,time成了shell的一个保留字;
说白了,time命令虽然在命令行能单独执行,是因为它是shell的保留字,不能再脚本中执行,原因是在$PATH环境变量所包含的目录下,(例如/usr/bin/文件目录下)没有time命令
解决:
apt-get install time,安装time命令到某个bin目录下,这个命令会安装最新的time命令,格式与以前的time命令不太相同,如下:
旧版time:
root@tegra-ubuntu:~# time date
Thu Oct 11 20:00:03 PDT 2012
real 0m0.009s
user 0m0.000s
sys 0m0.010s
新版time:
root@tegra-ubuntu:~# time date
Thu Oct 11 20:00:30 PDT 2012
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 2416maxresident)k
0inputs+0outputs (0major+213minor)pagefaults 0swaps
结果是一样的,格式不同而已
总结:
不要以为能单独执行的命令,在shell中一定就能执行!
shell中不能执行的命令,可以通过手动添加命令到bin目录下解决。