La fonction de date sous OS X (Snow Leopard) n'a pas l'option --date comme la version GNU et je ne suis pas en mesure de comprendre comment obtenir le équivalent de ce qui suit sur OS X:Boucle de la date de début à la date de fin dans le script shell 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
SOLVED avec des réponses de 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
Heureux de voir que cela fonctionne pour vous. Je ne suis pas sûr de la version de 'bash' OSX (si elle a même bash), mais si c'est le cas, vous devriez envelopper vos commandes dans' $() 'au lieu de backticks comme' sDateTs = $ (date -j -f ...) 'et utiliser des doubles crochets' [['au lieu d'un seul' [donc vous pouvez faire 'alors que [[" $ dateTS "<" $ eDateTs "]]' – SiegeX