Получить вчерашнюю дату в Unix - KSH скрипт - PullRequest
1 голос
/ 30 июня 2011

Приведенная ниже команда используется для получения даты вчерашнего дня в Unix Ksh на HP UX

DATE_STAMP=`TZ=CST+24 date +%m/%d/%Y` 

Может кто-нибудь сообщить мне, что делает "CST + 24 date" в приведенной выше команде?

Ответы [ 3 ]

2 голосов
/ 30 июня 2011

Эта команда устанавливает часовой пояс 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.

1 голос
/ 30 июня 2011

VARIABLE=VALUE COMMAND означает, что для переменной среды VARIABLE установлено VALUE, но она не является постоянной, а только для выполненной команды COMMAND.

В вашем примере это означает: выполните команду date с переменной среды TZ, установленной на CST+24 (что является центральным стандартным временем плюс 24 часа).

0 голосов
/ 21 октября 2013

Посетите эту страницу http://www.kodkast.com/blogs/unix-shell-scripting/how-to-get-yesterdays-date, где вы можете узнать вчерашнюю дату, а также любую другую предыдущую дату в сценариях оболочки Unix.

...