如何计算bash中的小时和分钟?例如,假设我要编写一个脚本,该脚本需要两个时间戳,并告诉我它们之间有几个小时,我该怎么做?
$ timediff 23:43 02:10
Time difference is: xxx hours.
如果第二个时间戳是一天之后,该如何处理(如示例中所示)?
$ t1="23:42"
$ t2="02:10"
$ e1=$( date -d "$t1" +%s )
$ e2=$( date -d "$t2" +%s )
$ if (( e1 > e2 )); then e2=$( date -d "$t2 tomorrow" +%s ); fi
$ date -d@$e1
Tue Oct 6 23:42:00 EDT 2015
$ date -d@$e2
Wed Oct 7 02:10:00 EDT 2015
要找到两者之间的区别,如果不需要小数小时,请使用Shell算术,否则通过管道传递到 bc
$ diff=$(( (e2 - e1)/3600 ))
$ echo $diff
2
$ diff=$( echo "scale=2; ($e2-$e1)/3600" | bc)
$ echo $diff
2.46
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句