我一直在试图获得一个脚本来打印从开始date到当天之后的一系列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
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