Answers:
为了只获取一天的总分钟数,我将使用以下命令:
$ date "+%H*60+%M" | bc
例:
$ date +%R
09:30
$ date "+%H*60+%M" | bc
570
技巧是格式化date
输出以允许bc
解释和计算公式。
zsh
date "+%H*60+%M" | bc
效果也一样。大概在任何外壳中。
只是猛击:
IFS=: read hour min < <(date +%R)
echo $(( 60 * 10#$hour + 10#$min ))
强制将两个变量都视为以10为底,以避免shell因无效的八进制数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中;)