Если вечером перед ночной поездкой на дачу лечь подремать и проснуться в половине второго ночи, то определение точного времени становится довольно нетривиальной задачей — как определить, живем ли мы еще в летнем времени или уже в зимнем? Все часы в доме, по идее, переводятся автоматически.
ZONE=`date +%Z`; if [ $ZONE == ‘MSK’ ] ; then echo «Зимнее время»; fi
Кхм. Никогда не задумывался, но, кажется, date должно понимать переводы часов (и отдаст MSK всегда).
ZONE=`date +%:::z`; if [ $ZONE == '+03' ] ; then echo "Зимнее время"; fi
Не-а. Летом оно отдавало MSD. Вот хорошо, что я терминал не закрыл:
dao@gw:~$ date
Sun Oct 25 02:54:30 MSD 2009
dao@gw:~$ date
Sun Oct 25 02:02:23 MSK 2009
Но можно, действительно, и в numeric timezone смотреть. Меня другое удивляет — я, признаться, ожидал, что ко мне сюда набегут ругаться те, у кого машины живут, к примеру, в PDT. :)