La funzione di data su OS X (Snow Leopard) non ha l'opzione --date come la versione GNU e non sono in grado di capire come ottenere equivalente del seguente su OS X:Loop dalla data di inizio alla data di fine nello script di shell di Mac OS X
startdate=2010-01-01
enddate=2010-01-31
foldate="$startdate"
until [ "$foldate" == "$enddate" ]
do
# do something with the date here - like pass it as a parameter to a command
foldate=`/bin/date --date "$foldate 1 day" +%Y-%m-%d`
done
risolto con risposte da SiegeX:
startdate=2010-01-01
enddate=2010-01-31
sDateTs=`date -j -f "%Y-%m-%d" $startdate "+%s"`
eDateTs=`date -j -f "%Y-%m-%d" $enddate "+%s"`
dateTs=$sDateTs
offset=86400
while [ "$dateTs" -le "$eDateTs" ]
do
date=`date -j -f "%s" $dateTs "+%Y-%m-%d"`
printf '%s\n' $date
dateTs=$(($dateTs+$offset))
done
Felice di vedere che funziona per voi. Non sono sicuro di quale versione di 'bash' OSX abbia (se abbia anche bash), ma se lo fa dovresti includere i comandi in' $() 'invece di apici come' sDateTs = $ (date -j -f ...) 'e usa le parentesi doppie' [['invece di un singolo' ['così puoi fare' mentre [["$ dateTS" <"$ eDateTs"]] ' – SiegeX