time命令-->用来度量指令执行时所消耗的时间及系统资源等资讯
适用场景:
如果要观察某个命令或脚本到底花了多少时间,这个时候time命令就可以派上用场.虽然该命令有两个作用,即可度量指令或脚本的执行时间,还可以查看系统资源消耗的时间,但平时主要还是看第一项.
备注:
1) real > user+sys
2) 用户态和核心态
3) Bash内置time VS GUN的time(/usr/bin/time)
4) Bash内置time的输出重定向问题
time命令的输出信息是打印在标准错误输出上的,假如我们要检查执行script.sh脚本的时间
下面的情况都是错误的:
time ./script.sh > LOGFILE
time ./script.sh >& LOGFILE
time ./script.sh 2> LOGFILE
time ./script.sh > LOGFILE 2>&1
time ./script.sh 2>&1 | tee LOGFILE
这是为什么呢? 因为time是shell的关键字,shell做了特殊处理,它会把time命令后面的命令行作为一个整体来进行处理,在重定向时,实际上是针对后面的命令来的,time命令本身的输出并不会被重定向的。所以正确的写法
(time ./script.sh) 2> LOGFILE
{ time ./script.sh; } 2> LOGFILE