我正试图使用bash生成一个起点和终点之间的日期和时间列表。
我希望输出为mm/dd/yyyy hh:mm格式。
在命令行上,命令:
date +"%m/%d/%Y %H:%M"
产生我正在寻找的输出。
当我使用当前被注释掉的行时,我会得到一个错误。
date: extra operand ‘%H:%M’
Try 'date --help' for more information.
我不知道如何修改脚本以产生我想要的输出。
DATE=date
#FORMAT="%m/%d/%Y %H:%M"
FORMAT="%m/%d/%Y"
start=`$DATE +$FORMAT -d "2013-05-06"`
end=`$DATE +$FORMAT -d "2013-09-16"`
now=$start
while [[ "$now" < "$end" ]] ; do
now=`$DATE +$FORMAT -d "$now + 1 day"`
echo "$now"
done
我试过在开始和结束时间后加一个00:00,但没有奏效。
你知道我在哪里把输出格式搞错了吗?
代码来源:https://ocroquette.wordpress.com/2013/04/21/how-to-generate-a-list-of-dates-from-the-shell-bash/
当您使用FORMAT="%m/%d/%Y %H:%M"
时,您需要引号,因为它包含空格,所以:
now=`$DATE +"$FORMAT" -d "$now + 1 day"`
此外,我不认为你可以比较这样的日期。您可能需要时间戳:
date +%s