bash 脚本运行的时间(天/分钟/秒)

Kes*_*hun 2 linux scripting bash date time

事实上,当我想要估计脚本完成所需的时间时。

startdate=$date

stuffs

enddate=$date
Run Code Online (Sandbox Code Playgroud)

我希望得到这两个日期之间的差异,通常脚本完成时间不到 1 周。所以我需要它的天数和分钟数。

Kus*_*nda 9

bash手册中:

SECONDS

每次引用此参数时,都会返回自 shell 调用以来的秒数。如果将值分配给 SECONDS,则后续引用时返回的值是自分配以来的秒数加上所分配的值。如果SECONDS未设置,即使随后重置,它也会失去其特殊属性。

因此,每当您想使用计时秒数的计时器来计时一段代码时,您可以这样做

SECONDS=0

# code goes here

t=$SECONDS
Run Code Online (Sandbox Code Playgroud)

要打印该$t值的天数和分钟数:

printf 'Time taken: %d days, %d minutes\n' "$(( t/86400 ))" "$(( t/60 - 1440*(t/86400) ))"
Run Code Online (Sandbox Code Playgroud)