有时候写了一个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。
欢迎关注公众号:生信编程日常