Bash有一个方便的SECONDS内置变量,可跟踪自启动外壳以来经过的秒数。分配给该变量后,它会保留其属性,赋值后返回的值是指赋值以来的秒数加上赋值。因此,您可以SECONDS在开始定时事件之前将其设置为0,在事件之后简单读取SECONDS,然后在显示之前进行时间算术运算。SECONDS=0# do some workduration=$SECONDSecho "$(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."由于此解决方案不依赖date +%s(这是GNU扩展),因此可以移植到Bash支持的所有系统中。