Приведенная ниже команда используется для получения даты прошлых дней в Unix Ksh на HP UX.
DATE_STAMP=`TZ=CST+24 date +%m/%d/%Y`
Может ли кто-нибудь сообщить мне, что делает «дата CST + 24» в приведенной выше команде?
Приведенная ниже команда используется для получения даты прошлых дней в Unix Ksh на HP UX.
DATE_STAMP=`TZ=CST+24 date +%m/%d/%Y`
Может ли кто-нибудь сообщить мне, что делает «дата CST + 24» в приведенной выше команде?
Эта команда устанавливает часовой пояс на CST+24 и возвращает дату в этом часовом поясе.
если вы ищете команду, чтобы узнать вчерашнюю дату, вам лучше использовать трюк TZ esp. если вы находитесь в часовом поясе, который соблюдает летнее время.
вместо этого используйте perl one liner.
#this takes local time and substracts a day(24*60*60 seconds) and formats the time.
echo `perl -e 'use POSIX; print strftime "%m/%d/%Y%", localtime time-86400;'`
Просто предположение по вашей команде - поскольку это вчера в часовом поясе CST + 24, команда возвращает вчерашнюю дату, и если вы используете CST-24, она возвращает завтрашнюю дату, поскольку дата переводится в дату завтрашнего дня в часовом поясе CST-24.
VARIABLE=VALUE COMMAND
означает, что вы устанавливаете переменную среды VARIABLE
в VALUE
, но не постоянно, а только для выполняемой команды COMMAND
.
В вашем примере это означает: выполните команду date
с переменной среды TZ
, установленной на CST+24
(что соответствует центральному стандартному времени плюс 24 часа).
Посетите эту страницу http://www.kodkast.com/blogs/unix-shell-scripting/how-to-get-yesterdays-date, где вы можете узнать вчерашнюю дату, а также любую другую предыдущую дату в сценариях оболочки Unix.
date
, которая является частью GNU coreutils, вы можете получить вчерашнюю дату, используяdate --date=yesterday
. - person Noufal Ibrahim   schedule 30.06.2011