【发布时间】:2017-02-26 12:35:55
【问题描述】:
我想迭代一个月内的所有分钟(目的是生成一个 CSV 文件)。
但是当我尝试这个时:
d="2016-09-01 00:00:00"
while [ "$d" != "2016-09-30 00:00:00" ]; do
echo $d
d=$(date --utc "+%Y-%m-%d %H:%M:00" -d "$d + 1 minute" )
done
小时和分钟都在递增:
2016-09-01 00:00:00
2016-09-01 01:01:00
2016-09-01 02:02:00
2016-09-01 03:03:00
2016-09-01 04:04:00
2016-09-01 05:05:00
2016-09-01 06:06:00
2016-09-01 07:07:00
2016-09-01 08:08:00
我做错了什么以及如何正确循环分钟?
【问题讨论】:
-
有趣的是,当我运行这段代码时,小时递减而分钟递增。你在哪个时区?我怀疑
--utc仅适用于输出,而不适用于日期算术。 -
是的,+ 号与人们的想法不同。试试
+ minute或minute,再试试+ 1。+在时间上添加一个偏移量。不要使用+,只需将增量放在例如$d 10 minutes