shell程序计时

2020-04-01 15:53:01 浏览数 (1)

有时候写了一个pipeline,我们想知道具体会跑多长时间,这就需要实现计时功能,可以用date或者time实现。

1.date

首先用man date查看以下说明:

image.png

举几个例子更容易理解:

代码语言:javascript复制
date " DATE: %Y-%m-%d%nTIME: %H:%M:%S"

输出: DATE: 2020-01-13 TIME: 10:48:28 (当前时间)

代码语言:javascript复制
date -v1m

输出: 2020年 1月13日 星期一 10时50分20秒 CST

代码语言:javascript复制
 date " %m%d%H%M%S"

输出: 0113105443 即1月13日10点54分43秒。

比如以下脚本计时:

代码语言:javascript复制
start=`date  %s` # %s可以计算的是1970年以来的秒数
sleep 20 
end=`date  %s`

time=`echo $start $end | awk '{print $2-$1}'`
echo $time

可以输出20。

2.time time可以计算某个程序的运行耗时(real), 用户态cpu耗时(user), 系统态cpu耗时(sys)。比如测试上面的主函数sleep 20的时间:

代码语言:javascript复制
time sleep 20

输出: real 0m20.007s user 0m0.002s sys 0m0.003s

如果测试脚本的话,格式为time sh xxx.sh。

欢迎关注公众号:生信编程日常

0 人点赞