A maneira mais fácil é usar o comando date
. No mundo UNIX, as datas são medidas em segundos desde a época . Se você converter suas datas em segundos, poderá usar date
para imprimir as que lhe interessam:
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
Copiar / colar isso no seu terminal deve retornar
2013-09-05
2013-09-06
2013-09-07
2013-09-08
2013-09-09
2013-09-10
As seções relevantes de man date
:
-d, --date=STRING
display time described by STRING, not 'now'
%F full date; same as %Y-%m-%d