내가 명령을 입력하면 내 시스템은 10:42와 같은 시간을 표시했습니다
date +%R
. 총 시간이 필요합니다. 이것은 642 분과 같은 의미입니다. 총 시간을 분 단위로 표시하는 명령 또는 쉘 스크립트가 있습니까?
내가 명령을 입력하면 내 시스템은 10:42와 같은 시간을 표시했습니다
date +%R
. 총 시간이 필요합니다. 이것은 642 분과 같은 의미입니다. 총 시간을 분 단위로 표시하는 명령 또는 쉘 스크립트가 있습니까?
답변:
하루의 총 시간 만 얻으려면 다음 명령을 사용합니다.
$ date "+%H*60+%M" | bc
예:
$ date +%R
09:30
$ date "+%H*60+%M" | bc
570
요령은 공식을 해석하고 계산할 date
수 있도록 출력 을 형식화하는 것 bc
입니다.
zsh
date "+%H*60+%M" | bc
잘 작동합니다. 아마 거의 모든 껍질에서.
그냥 bash :
IFS=: read hour min < <(date +%R)
echo $(( 60 * 10#$hour + 10#$min ))
두 변수를 강제하는 것은 잘못된 8 진수에 대한 오류를 던지는 쉘을 방지하기 위해 기본-10으로 처리하는 방법 08
및09
echo $(( $(date "+%k * 60 + 10#%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=: set -- $(date +%T); echo $1
반환 08:16:52
-당신이 필요합니다IFS=:; set ...
echo $(date +"%H*60+%M") | bc
zsh에서도 작동합니다.)