2013-07-23 3 views
1

В GNU с датой команды я могу это сделать:эквивалент даты от ПНЕ SOLARIS

date -d "+4 day" 


datei=20130101 
i=5 
date -d "$datei +$i day" 

Но я хотел знать:

как я могу сделать это в Solaris?

с командой даты

+0

В зависимости от Версия Solaris и те пакеты, которые установлен локальным администратором, дата GNU может быть доступна в '/ usr/gnu/bin/date' или как' gdate' в каталоге, например '/ usr/sfw/bin','/opt/csw/bin/','/usr/local/bin/'и т. д. – alanc

ответ

3

Tcl имеет хороший свободную форму сканер даты, если у вас установлен Tcl (попробуйте which tclsh). Функция оболочки:

tcldate() { 
    d=${1:-now} # the date string 
    f=${2:-%c} # the output format 
    echo "puts [clock format [clock scan {$d}] -format {$f}]" | tclsh 
} 

В действии на древних Solaris 8 коробков с Башем 2.03 и Tcl 8.3.3

$ tcldate 
Tue Jul 23 13:27:17 2013 
$ i=4 
$ tcldate "$i days" 
Sat Jul 27 13:27:34 2013 
$ tcldate "$i days" "%Y-%m-%d" 
2013-07-27 
$ tcldate "20130101 + $i days" "%Y-%m-%d" 
2013-01-05 

Это даже ручки перехода на летние переходы:

$ tcldate "2014-03-09 00:30 + 1 hour" "%D %T %Z" 
03/09/14 01:30:00 EST 
$ tcldate "2014-03-09 00:30 + 2 hour" "%D %T %Z" 
03/09/14 03:30:00 EDT 
$ tcldate "2013-11-03 00:30 + 1 hour" "%D %T %Z" 
11/03/13 01:30:00 EDT 
$ tcldate "2013-11-03 00:30 + 2 hour" "%D %T %Z" 
11/03/13 01:30:00 EST 
+0

Say me -bash: tclsh: команда не найдена. = ( –

+0

У меня нет tclsh. Есть ли другой способ? –

+0

Что это дает вам: 'perl -MDate :: Manip -e 1' дает вам? –

Смежные вопросы