bash를 사용하여 특정 시간까지 남은 시간(초)을 계산하시겠습니까?

bash를 사용하여 특정 시간까지 남은 시간(초)을 계산하시겠습니까?

"date" 명령에서 시간을 추출하려고 하는데,빼기미래의 어느 시점에 Date가 해당 시간에 도달할 때까지 남은 초 수를 구하여 그 숫자를 분은 60으로, 시간은 60으로 나눕니다.

예를 들어, "shutdown" 명령에 대한 인수로 사용하고 싶습니다.

어떻게 해야 하나요?

답변1

이 같은?

echo $(( $(date +%s -d "tomorrow 12:00") - $( date +%s ) ))
59856

답변2

Bash에서 직접 시간 문자열(24시간 미만)로 변환할 수 있습니다.

 $ TZ=UTC0 printf '%(%H:%M:%S)T\n' 123
 00:02:03

시차는 간단한 수학으로 계산할 수 있습니다.

 $ now=$(printf '%(%s)T')
 $ future=$(date -d '+10 hours' '+%s')
 $ tdiff=$(( future - now ))
 $ TZ=UTC0 printf '%(%H:%M:%S)T\n' "$tdiff"
 10:00:00

최대 364일을 얻으려면 다음 명령을 사용하십시오.

 now=$(printf '%(%s)T')
 future=$(date -d '+10 hour' '+%s')
 tdiff=$(( future - now ))
 j=$(( $(TZ=UTC0 printf '%(%j)T' "$tdiff") - 1 ))
 TZ=UTC0 printf '%s days %(%H:%M:%S)T\n' "$j" "$tdiff"

 0 days 10:00:00

관련 정보