如何在linux中读取开始日期和结束日期之间的所有日期

Sur*_*aja 2 linux bash

我想读取两个日期范围之间的所有日期,这个范围包括开始日期和结束日期

 input_start_date="2013-09-05"
 input_end_date="2013-09-10"

 START_DATE=$(date -I -d "$input_start_date") || exit -1
 END_DATE=$(date -I -d "$input_end_date")     || exit -1

 d="$START_DATE"
 while [ "$d" <= "$END_DATE" ]; do 
  echo $d
   d=$(date -I -d "$d + 1 day")
 done
Run Code Online (Sandbox Code Playgroud)

但是当我运行上面的代码时,我得到以下错误

 bash: = 2013-09-10: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗

预期输出

  2013-09-05
  2013-09-06
  2013-09-07
  2013-09-08
  2013-09-09
  2013-09-10
Run Code Online (Sandbox Code Playgroud)

小智 5

start=2013-09-05
end=2013-09-10
   while [[ $start < $end ]] 
     do 
      printf "$start\n"; start=$(date -d "$start + 1 day" +"%Y-%m-%d") 
     done
Run Code Online (Sandbox Code Playgroud)

或者你可以试试这个

END=$(date -d "2013-09-10" +%s);
DATE=$(date -d "2013-09-05" +%s); 
while [[ "$DATE" -le "$END" ]]; do date -d "@$DATE" +%F; let DATE+=86400; done
Run Code Online (Sandbox Code Playgroud)