计算UNIX作业花费的总时间

时间:2020-08-11 13:27:05

标签: linux bash shell unix scope

我有一个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

1 个答案:

答案 0 :(得分:0)

如何使用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