用于回应日期范围的脚本

时间:2011-07-08 08:57:15

标签: linux bash date

我一直在尝试制作一个脚本,用于打印从开始日期到后一天到日期的日期范围。

示例:

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

1 个答案:

答案 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