在 bash 中计算一天中的分钟的更简单方法

Adr*_*ins 2 bash date

我想在 bash shell 脚本中了解一天中的具体时间,目前我只能想到通过使用和to管道传输两个date命令来实现此目的:hour of dayminute of hourbc

mod=$(echo 60*$(date +%H)+$(date +%M) | bc)

echo $mod
Run Code Online (Sandbox Code Playgroud)

这可行,但非常笨重而且不太优雅,有更好的方法吗?我在 date 命令中没有看到一天中的分钟选项。

我使用的是 bash 版本

 4.4.20(1)-release 
Run Code Online (Sandbox Code Playgroud)

Cha*_*ffy 5

作为一种更有效的方法(使用 bash 4.4 或更高版本),尽管不一定是更短的方法:

printf -v dateMath '%( (10#%H*60)+10#%M )T' -1
mod=$(( dateMath ))
Run Code Online (Sandbox Code Playgroud)

...作为一种效率较低的单行代码(但仍然比使用dateand快得多bc),您也可以将其写为:

mod=$(( $(printf '%( (10#%H*60)+10#%M )T' -1) ))
Run Code Online (Sandbox Code Playgroud)