我使用来打印开始时间和结束时间date +"%T",结果如下:10:33:5610:36:10如何计算和打印这两者之间的差异?我想得到类似的东西:2m 14s
3 回答
侃侃尔雅
TA贡献1801条经验 获得超15个赞
Bash有一个方便的SECONDS内置变量,可跟踪自启动外壳以来经过的秒数。分配给该变量后,它会保留其属性,赋值后返回的值是指赋值以来的秒数加上赋值。
因此,您可以SECONDS在开始定时事件之前将其设置为0,在事件之后简单读取SECONDS,然后在显示之前进行时间算术运算。
SECONDS=0
# do some work
duration=$SECONDS
echo "$(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
由于此解决方案不依赖date +%s(这是GNU扩展),因此可以移植到Bash支持的所有系统中。
添加回答
举报
0/150
提交
取消