gpt4 book ai didi

linux - 如何在 Bash 中将秒数转换为分秒数?

转载 作者:IT王子 更新时间:2023-10-29 01:00:11 25 4
gpt4 key购买 nike

我有一个 Bash 脚本,它通过它的 API 从网站下载文件,我想在最后实现一个东西(没有更好的词)来显示脚本完成所需的时间。使用这段代码,我能够做到:

#!/bin/bash
SECONDS=0

# -- Code to Execute --

echo "Task complete"
echo "Script completed in $(echo "scale=2; $SECONDS / 60" | bc) minutes"

但是,这将显示脚本执行所花费的时间(不到一分钟):

Task complete
Script completed in 1.35 minutes

我如何才能将脚本完成所用的秒数转换为分钟和秒数?像这样:

Task complete
Script completed in 1 minute and 12 seconds

最佳答案

您可以在 shell 中使用整数除法和取模运算符:

echo "Script completed in $((SECONDS/60)) minutes and $((SECONDS%60)) seconds"

如果秒和分的部分为零,如果你想省略它们,那就有点复杂了:

if (( SECONDS/60 == 0 )); then
echo "Script completed in $SECONDS seconds"
elif (( SECONDS%60 == 0 )); then
echo "Script completed in $((SECONDS/60)) minutes"
else
echo "Script completed in $((SECONDS/60)) minutes and $((SECONDS%60)) seconds"
fi

(它仍然会说“1 分钟”而不是“1 分钟”;如果你想让它变得更复杂,你也可以修复它......)

关于linux - 如何在 Bash 中将秒数转换为分秒数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42149301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com