내가 명령을 입력하면 내 시스템은 10:42와 같은 시간을 표시했습니다
date +%R
. 총 시간이 필요합니다. 이것은 642 분과 같은 의미입니다. 총 시간을 분 단위로 표시하는 명령 또는 쉘 스크립트가 있습니까?
답변
하루의 총 시간 만 얻으려면 다음 명령을 사용합니다.
$ date "+%H*60+%M" | bc
예:
$ date +%R
09:30
$ date "+%H*60+%M" | bc
570
요령은 공식을 해석하고 계산할 date
수 있도록 출력 을 형식화하는 것 bc
입니다.
답변
그냥 bash :
IFS=: read hour min < <(date +%R)
echo $(( 60 * 10#$hour + 10#$min ))
두 변수를 강제하는 것은 잘못된 8 진수에 대한 오류를 던지는 쉘을 방지하기 위해 기본-10으로 처리하는 방법 08
및09
답변
date +%R | awk -F ":" '{print ($1 * 60) + $2}'
또는
echo $((($(date +%l) * 60 ) + $(date +%M)))
date +%l
시간을 얻고 60을 곱하고 분을 추가합니다. date +%M
답변
사용 date
하여 bash
:
eval "$(date +'today=%F now=%s')"; midnight=$(date -d "$today 0" +%s);echo "$(((now - midnight) / 60))"
예
$ date
Fr 10. Jul 08:45:05 CEST 2015
$ eval "$(date +'today=%F now=%s')"; midnight=$(date -d "$today 0" +%s);echo "$(((now - midnight) / 60))"
525
date
z-shell (zsh) 사용 및 :
IFS=:; set -- $(date +%T); echo "$((($1 * 3600 + $2 * 60 + $3) / 60))"
예
% date
Fr 10. Jul 08:40:53 CEST 2015
% IFS=:; set -- $(date +%T); echo "$((($1 * 3600 + $2 * 60 + $3) / 60))"
520
답변
IFS를 사용할 필요가 없으며 다음과 같이 할 수 있습니다.
date=$(date +'%l:%M')
read H M <<< ${date//[-: ]/ }
echo "Total minutes: $(($H * 60 + $M))"
출력은 다음과 같습니다
Total minutes: 593