我想编写一个从日期开始的for循环(以字符串形式接收)并在所有日期中循环一段时间。 我最终解决了这个问题,但我不明白为什么另一次尝试失败了,我希望得到解释。
这是最终解决方案:
a=3
start_date="2017-09-01"
for ((i=0;i<$a;i++));
do
cur_date=`date -d $start_date" -"$i" days"`
echo $cur_date
done
导致:
Fri Sep 1 00:00:00 CEST 2017
Sat Sep 2 00:00:00 CEST 2017
Sun Sep 3 00:00:00 CEST 2017
哪个好,但是这个:
for i in {0..$a}
do
cur_date=`date -d $start_date" "$i" days"`
echo $cur_date
done
结果:
date: invalid date ‘2017-09-01 {0..3} days’
虽然这个:
for i in {0..3}
do
cur_date=`date -d $start_date" "$i" days"`
echo $cur_date
done
返回正确的序列 所以,问题是,为什么使用具有相同值而不是just值的变量会破坏代码?
由于