gpt4 book ai didi

linux - Bash 循环遍历日期时间 +%Y-%m-%d %H :%M format

转载 作者:太空宇宙 更新时间:2023-11-04 09:17:32 25 4
gpt4 key购买 nike

这段代码的目的是打印一个小时前的 1 分钟间隔。我有以下代码,但在开始日期和结束日期之间循环时遇到问题

to_dt=`date "+%Y-%m-%d %H:%M"`
from_dt=`date -d "${to_dt} 1 hour ago" "+%Y-%m-%d %H:%M"`

echo $from_dt $to_dt

2017-08-04 01:54 2017-08-04 02:54

while [ "${from_dt}" -lt "${to_dt}" ]
do

from_dt=`date -d "${from_dt} 1 minute" "+%Y-%m-%d %H:%M"`
end_dt_min_after=`date -d "${from_dt} 1 minute" "+%Y-%m-%d %H:%M"`

done

我得到以下错误

line 10: [: 2017-08-04 02:01: integer expression expected

预期结果:

2017-08-04 01:55 2017-08-04 02:56

2017-08-04 01:56 2017-08-04 02:57

....

....

是否可以使用 while 进行迭代,即在每个循环期间从日期开始递增 1 分钟?

最佳答案

为了简单起见,我在这里使用了 epoc。应该适用于您的用例:

#!/bin/sh

if [ -z $1 ];then
echo Please pass number of seconds
exit 1
fi

epoc_now=`date "+%s"`

epoc_after_hour=`expr $epoc_now + $1`

while [ "${epoc_after_hour}" -gt "${epoc_now}" ]
do
epoc_now=`expr $epoc_now + 60`
date -d "@$epoc_now"
done

关于linux - Bash 循环遍历日期时间 +%Y-%m-%d %H :%M format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45500329/

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