gpt4 book ai didi

bash - 使用 bash 脚本每小时循环打印日期

转载 作者:行者123 更新时间:2023-11-29 09:38:35 24 4
gpt4 key购买 nike

我想编写一个 bash 脚本,以下列格式打印出日期:

20120205_16
(year)(month)(day)_(24 hour)

所以在当前日期执行此操作的命令是:

date +'20%y%m%d_%H'

我想做的是打印从指定日期到另一个日期的每个日期(使用 for 循环或其他东西)。例如:

20120205_16 -> 20120305_18 would be:

20120205_16
20120205_17
20120205_18
...
20120305_17
20120305_18

显然这里的两个硬位指定日期并按小时递增。

是否可以使用日期或其他方法轻松做到这一点?

最佳答案

首先,您使用 %s 格式获取 time_t 值:

start=$(date --date '5 feb 2012 16:00' +%s)
stop=$(date --date '5 mar 2012 18:00' +%s)

这些以秒表示。您可以对它们的值使用 for 循环,将它们增加 1 小时(3600 秒):

for t in $(seq ${start} 3600 ${stop})
do
date --date @${t} +'%Y%m%d_%H'
done

注意@,用于表示通过--date参数中的%+s获得的时间。

关于bash - 使用 bash 脚本每小时循环打印日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11574435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com