Сценарий Linux заканчивается 6 ноября 2011 года, но не 7 ноября 2011 года (с циклическим изменением дат) - PullRequest
1 голос
/ 08 ноября 2011

Мне нужно выполнить определенную команду для нескольких дат.С этой целью я написал простой скрипт, который будет перебирать даты, отформатированные так, как команда будет ожидать их, используя команду date:

startdate=`/bin/date --date="January 22 2011" +%e-%b-%Y`
enddate=`/bin/date --date="7-Nov-2011" +%e-%b-%Y`
echo "Start Date: $startdate"
echo "End Date: $enddate"
sleep 5
incdate="$startdate"
until [ "$incdate" == "$enddate" ]
do
  echo "$incdate"
  incdate=`/bin/date --date="$incdate 1 day" +%e-%b-%Y`
done
exit

Если я установлю enddate в «6-Nov-2011» скриптостановится, как ожидается, после печати 5 ноября 2011 года.Однако, если я установлю enddate на «7-Nov-2011», как указано выше, скрипт будет печатать «6-Nov-2011» навсегда.Я не могу понять, почему ... какие-то идеи?Спасибо.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2011

Мне кажется, я понял проблему - из-за перехода на летнее время, увеличение 6-го ноября 2011 года на один день приводит к 6-го ноября 2011 года в 23:00:00 вместо 7-го ноября 2011 года! Предположим, я могу вставить «если» для этого особого случая.

0 голосов
/ 09 ноября 2011

Вы можете использовать на или crontab

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...