"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