我一直在尝试制作一个脚本,用于打印从开始日期到后一天到日期的日期范围。
示例:
Backup-2011-06-14
Backup-2011-06-15
Backup-2011-06-16
下面有一个想法,但是甚至没有任何想法,任何想法?
start=$(date +%F --date="2011-06-14")
echo "$start"
current=$(date +%F)
echo "$current"
end=$(date +%F)
while [ "$start" != "$current" ]; do
echo backup-$(( $(date --date="$start" +%F) + $(date +%s --date='1 day') ))
done
答案 0 :(得分:2)
bash中的日期数学很难。但是date
命令确实支持从今天开始的简单加法或减法。因此,在您的情况下,需要采用不同的方法。首先,确定要输出这些日期的天数,然后输出与今天日期相关的日期。
#!/bin/bash
days=$(( ($(date +%s)-$(date +%s --date="2011-06-14"))/86400 ))
while [ $days -gt 0 ]; do
echo backup-$(date --date="-$days days" +%F)
days=$(($days-1))
done