쉘 스크립트를 사용하여 두 날짜 빼기

쉘 스크립트를 사용하여 두 날짜 빼기

쉘 스크립트를 사용하여 epoch 형식에서 두 날짜를 빼는 방법. 월, 일, 시간 형식으로 출력하고 싶습니다. 그리고 12개월 이상 작동해야 합니다(12개월을 초과하면 0개월로 재설정되는 경우도 있었습니다).

답변1

다음과 같이 시도해 보세요.

#!/bin/bash

d1=`date -d 20140929 +%s`
d2=`date -d 20001115 +%s`

date --date=@$(($d1 - $d2)) +'%m months, %d days, %H hours'

산출:

11 months, 15 days, 02 hours

답변2

#!/bin/bash

d=(60sec 60min 24hours 30days 12month 1000year)
i=0

while [ $1 -ge ${d[i]%%[a-z]*} ]
do
    set -- $(($1/${d[i]%%[a-z]*})) $(($1%${d[i]%%[a-z]*})) ${d[i]##*[0-9]} ${*:2}
    ((i++))
done 
echo $1 ${d[i]##*[0-9]} ${*:2}

관련 정보