2015-02-10 43 views
1

我有打印日期不正确逗号分隔日期的价值

condition=`date -d "20150209" +%a` 
start_date=`date -d -7day"20150209" +%Y%m%d` 
end_date=`date -d -1day"20150209" +%Y%m%d` 
if [ "$condition" = "Mon" ] 
then 
while [ "$start_date" != "$end_date" ] 
do 
Date+=$start_date, 
start_date=$(date -d +1day"$start_date" +%Y%m%d) 

done 
echo "$Date" 
fi 

我期待输出

20150203,20150204,20150205,20150206,20150207,20150208 

我无法弄清楚什么是错误的代码。

+0

什么是*实际*输出? – 2015-02-10 14:20:29

+0

20150202,20150203,20150204,20150205,20150206,20150207,20150202,20150203,20150204,20150205,20150206,20150207, – 2015-02-10 14:31:56

+0

我得到:'20150202,20150203,20150204,20150205,20150206,20150204,'从上面的代码。问题是什么? – anubhava 2015-02-10 14:34:29

回答

0

我错过了日期范围中的最后一个元素。 这里是解决方案。

condition=`date -d "20150209" +%a` 
start_date=`date -d -7day"20150209" +%Y%m%d` 
end_date=`date -d -1day"20150209" +%Y%m%d` 

while [ "$start_date" != "$end_date" ] 
do 
Date+=$start_date, 
start_date=$(date -d +1day"$start_date" +%Y%m%d) 
done 

echo "$Date$end_date" 

如果有人有更好的解决方案,请让我知道。