이 쉘 스크립트(bash 없이)는 어떻게 초를 DDD:HH:MM:SS로 표시할 수 있습니까?

이 쉘 스크립트(bash 없이)는 어떻게 초를 DDD:HH:MM:SS로 표시할 수 있습니까?
#!/bin/sh
INTERVAL=12
TOTAL=3388888
DURSECS=$(($TOTAL * $INTERVAL))
printf "\n$DURSECS seconds.\n"
printf "\nFormatted as DAYS:HOURS:MINUTES:SECONDS - DDD:HH:MM:SS - the total duration will be:\n"
# these do not do it
# TOTALTIMES=$(($DURSECS/(24*60*60), "ddd:hh:mm:ss"))
# printf "$TOTALTIMES"
# just need days here
date -u -d @${DURSECS} +"%T"

printf '\n\nTHE END\n'

답변1

얼마나 멀리 갈 것인가?

echo $((DURSECS / 86400)):$(date +%T -d@$(( DURSECS % 86400 )))
470:17:17:36

이해합니다?

답변2

#!/bin/sh
INTERVAL=102
TOTAL=86401
DURSECS=$(($TOTAL * $INTERVAL))
printf "\n$DURSECS seconds.\n"
printf "\nFormatted as DAYS:HOURS:MINUTES:SECONDS - DDD:HH:MM:SS - the total duration will be:\n"
ddd=$(($DURSECS / 86400))
printf "$ddd:"
date -u -d @${DURSECS} +"%H:%M:%S"
printf '\n\nTHE END\n'

관련 정보