计算UNIX作业花费的总时间

问题描述

我有一个Shell脚本,用于在UNIX环境中运行一系列作业(例如1到50)。 我需要计算脚本完成整个任务所需的总时间(全部50个工作)。我尝试使用SECONDS变量来计算总时间,但是如果中间有任何作业失败,则该变量会再次重置为0(作业失败意味着我们必须重新触发脚本,并且它将继续从失败的状态继续执行在工作10)。变量TOTALTIME仅存储从上次失败的作业开始的时间。我想保留时间变量,直到所有作业完成。我是Shell脚本的新手,需要帮助来解决此问题。

SECONDS=0
while CONDITION
do
job 1
job 2
.
.
.
job 50
done
TOTALTIME=$SECONDS
echo "Total time : $(($TOTALTIME/ 3600)) hours,$((($TOTALTIME/ 60)%60)) minutes,and $(($TOTALTIME% 60)) seconds " >> abc.log

解决方法

如何使用dateepoc时间?

SECONDS=$(date "+%s")
while CONDITION
do
job 1
job 2
.
.
.
job 50
done
TOTALTIME=$(date "+%s")
echo "Total time : $(( (($TOTALTIME - $SECONDS))/ 3600)) hours,$((( (($TOTALTIME - $SECONDS))/ 60)%60)) minutes,and $(( (($TOTALTIME - $SECONDS)) %  60)) seconds " >> abc.log

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...