The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

Go Back   В UNIX и Linux Форумы > Топ форумы > UNIX для чайников Вопросы И Ответы
.
Google unix.com



UNIX для чайников Вопросы И Ответы Если вы не уверены в том, где разместить UNIX или Linux вопрос, задайте его здесь. Все UNIX и Linux приветствуем новичков!!

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Сравните с даты db2 таблицу вчерашнего Unix системы дате sasaliasim Shell программирование и сценарии 9 12-01-2008 11:37 PM
Получить дату и время за последние 1 час от текущей даты spch2o Shell программирование и сценарии 5 08-29-2008 04:32 AM
Обработка лог-файл на основе даты и времени ввода и даты / времени в лог-файл наряжаться Shell программирование и сценарии 4 03-16-2008 11:23 AM
сопоставить даты с датой в файл siog UNIX для чайников Вопросы И Ответы 2 10-04-2006 12:10 PM
сравнить сегодняшнюю дату с датой в файл siog UNIX для чайников Вопросы И Ответы 4 10-04-2006 11:55 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 09-28-2006
Джамиль Кадир Jamil Qadir is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2006
Сообщений: 13
Сравнить Дата и время

Привет

может кто-нибудь прислать мне код сравнить две даты и запустить скрипт. Ниже приводится код, который я хочу actully но я получаю ошибки.

рассматривать


Джамиль

. / отказа / Home / REP / .profile

#! / BIN / ш
VALUE \u003d `sqlplus-Silent rep/Ndk38f7 @ DW <<END
установить pagesize 0 отзывов от проверить покинуть статье покинуть ECHO OFF
выберите TRUNC (Max (chg_dt)) из NOT_SCHEDULED_INSTALL;
выхода;
END `
Value2 \u003d `sqlplus-Silent rep/Ndk38f7 @ DW <<END
установить pagesize 0 отзывов от проверить покинуть статье покинуть ECHO OFF
выберите TRUNC (sysdate) с двойным;
выхода;
Конец `
если [[$ VALUE-экв $ Value2]], затем
Эхо "Нет строк вернулся из базы данных"
выход 0
еще
Эхо $ Value2
Эхо $ VALUE
FI
Old 09-28-2006
Джим Макнамара jim mcnamara is offline Forum Staff  
...@...
  
 

Регистрация: Февраль 2004
Местонахождение: Н. М.
Сообщения: 5748
Oracle уже даты арифметики, не KSH - используйте PL / SQL:
Код:
#!/bin/ksh

date_equal()
{

sqlplus -silent rep/Ndk38f7@dw <<END
set pagesize 0 feedback off verify off heading off echo off serverout on size 100000
DECLARE 
   date1 DATE:=NULL;
   date2 DATE:=NULL;
BEGIN
DBMS_OUTPUT.enable(100000);
select trunc(max(chg_dt)) into date1 from NOT_SCHEDULED_INSTALL;
select trunc(sysdate) into date2 from dual;
IF date1 = date2
THEN
	DBMS_OUTPUT.put_line('1');
ELSE
    DBMS_OUTPUT.put_line('0');
END IF;
END;
/
exit;
END

}

if [[ $(date_equal) -eq 1 ]] ; then
# do something 
else
# do something else
fi
Old 09-29-2006
jamilmjq jamilmjq is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2006
Сообщений: 1
Дата и время проблема

Спасибо за ваш ответ.
Проблема это не работает должным образом, он всегда печати "не OK"

если [[$ (date_equal)-экв 1]], затем
Эхо 'OK'
еще
Эхо "не OK"
FI

спасибо
Old 09-29-2006
boppr6470 boppr6470 is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2006
Сообщений: 8
А теперь-то другое

Я использовал это раньше, и оно работает довольно хорошо.
Ли несколько разные вещи с датами в зависимости от параметров.

#! / USR / BIN / KSH

# Datecalc - Perderabo дата калькулятор
#

USAGE \u003d "\
datecalc год-месяц день - год месяц день
datecalc год-месяц день [-|+] N
datecalc-й год месяц день
datecalc-D Год месяц день
datecalc-й год месяц день
datecalc-JN
datecalc-L год месяц
Использование \ "datecalc помощь \" использовать более документация "

ДОКУМЕНТАЦИЯ \u003d "\
datecalc Версия 1.1

datecalc делает много манипуляций с датами.
datecalc-а по дате арифметика
datecalc-D или D преобразует дату ко дню недели
datecalc-й на дату конвертации или из Джулиан день
datecalc-л мероприятия в последний день месяца

Все даты должны быть между годами 1860 и 3999.

datecalc-а следуют 7 параметров расчета
количество дней между двумя датами. Параметры 2-4 и 6-8
дата должна быть в форме ymd, а параметр 5 должна быть минус
знак. Результатом является целое. Пример:

> Datecalc-A 1960 12 31 - 1922 2 2
14212


datecalc-а затем 5 параметров расчета
новая дата компенсируется начиная с определенной даты, должны Параметры 2-4
быть на сегодняшний день в ymd виде Параметр 5 должна быть + или -, и
Параметр 6 должна быть целым числом. Результатом является новый срок.
Пример:

> Datecalc-A 1960 12 31 + 7
1961 1 7


datecalc-й, затем 3 параметров конвертирования даты
на целый день в неделю. Параметры 2-4 должна быть дата, в ymd
форме. Пример:

> Datecalc-D 1960 12 31
6


datecalc-Д-Д, как это показывает, кроме названия
в день. Пример:

> Datecalc-D 1960 12 31
Суббота


datecalc-й, затем 3 параметров конвертирования даты
с измененным Джулиан День числа. Пример:
> Datecalc-J 1960 12 31
37299


datecalc-й следуют одного параметра будут преобразовывать
модифицированный юлианский день число на сегодняшний день. Пример:
> Datecalc J-37299
1960 12 31


datecalc-л следуют год и месяц выхода последнего
день этого месяца. Заметим, что, проверяя в последний день
Февраль Вы сможете протестировать в високосный год. Пример:
> Datecalc-L 2002 2
28 "


lastday () (
целочисленного год месяц скачок
# Я Fe AP MA MA JN JL AG SE OC не де -
установка А mlength XX 31 28 31 30 31 30 31 31 30 31 30 31

год \u003d $ 1
если ((год <1860 | | год> 3999)), затем
Принт-u2 год вне диапазона
вернуться 1
FI
в месяц \u003d $ 2
если ((месяц <1 | | месяц> 12)), затем
Принт-u2 месяц вне диапазона
вернуться 1
FI

если ((месяц! \u003d 2)), затем
Версия для печати $ (mlength [месяц])
вернуться 0
FI

прыжок \u003d 0
если ((! (год 100%))), затем
((! (год 400%))) И И скачок \u003d 1
еще
((! (год 4%))) И И скачок \u003d 1
FI

feblength \u003d 28
((прыжок)) И И feblength \u003d 29
Версия для печати $ feblength
вернуться 0
)


date2jd () (
целочисленного ijd день месяц год mnjd JD lday

год \u003d $ 1
в месяц \u003d $ 2
в день \u003d $ 3
lday \u003d $ ($ lastday год $ в месяц) | | $ выход?

если ((день <1 | | день> lday)), затем
Принт-u2 день вне диапазона
вернуться 1
FI

((\u003d standard_jd день - 32075
+ 1461 * (+ 4800 год - (14 - в месяц) / 12) / 4
+ 367 * (в месяц - 2 + (14 - в месяц) / 12 * 12) / 12
- 3 * ((+ 4900 год - (14 - в месяц) / 12) / 100) / 4))
((JD \u003d standard_jd-2400001))


Версия для печати $ JD
вернуться 0
)


jd2dow ()
(
целочисленного JD Dow numeric_mode
набор + A дни воскресенье понедельник вторник среда четверг пятница суббота

numeric_mode \u003d 0
если [[$ 1 \u003d-N]], затем
numeric_mode \u003d 1
перемещение
FI


JD \u003d $ 1
если ((JD <1 | | JD> 782028)), затем
Принт-u2 юлианский день вне диапазона
вернуться 1
FI

((Dow \u003d (JD 3)% 7))

если ((numeric_mode)), затем
Версия для печати $ Dow
еще
Версия для печати $ (дней [Dow])
FI
вернуться
)

jd2date ()
(
целочисленного standard_jd temp1 temp2 JD месяц день год

JD \u003d $ 1
если ((JD <1 | | JD> 782028)), затем
Версия для печати Джулиан день вне диапазона
вернуться 1
FI
((\u003d standard_jd JD +2400001))
((temp1 \u003d standard_jd + 68569))
((temp2 \u003d 4 * temp1/146097))
((temp1 \u003d temp1 - (146097 * temp2 + 3) / 4))
((год \u003d 4000 * (temp1 + 1) / 1461001))
((temp1 \u003d temp1 - 1461 год * / 4 + 31))
((месяц \u003d 80 * temp1 / 2447))
((день \u003d temp1 - 2447 в месяц * / 80))
((temp1 \u003d месяц / 11))
((\u003d месяц в месяц + 2 - 12 * temp1))
((год \u003d 100 * (temp2 - 49) + + temp1 год))
распечатать году $ $ $ в месяц день
вернуться 0
)


#
# Parse параметры и получить работу.
случае $ 1
-A), если (($ # \u003d\u003d 8)), затем
если [[$ 5! \u003d -]], затем
Принт-u2 - "$ USAGE"
Exit 1
FI
jd1 \u003d $ (date2jd $ 2 $ 3 $ 4) | | $ выход?
jd2 \u003d $ (date2jd $ 6 $ 7 $ 8) | | $ выход?
((jd3 \u003d jd1-jd2))
Версия для печати $ jd3
выход 0
Элиф (($ # \u003d\u003d 6)), затем
jd1 \u003d $ (date2jd $ 2 $ 3 $ 4) | | $ выход?
случае $ 5
- | +) EVAL '((' jd2 \u003d $ ($ jd1) (5) ($ 6 }'))'
jd2date $ jd2
выход $?
;;
*)
Принт-u2 - "$ USAGE"
Exit 1
;;
esac

FI
;;

-D |-D), если (($ #! \u003d 4)), затем
Принт-u2 - "$ USAGE"
Exit 1
FI
jd1 \u003d $ (date2jd $ 2 $ 3 $ 4) | | $ выход?
числовое \u003d- N
[[$ 1 \u003d-D]] И И числовое \u003d ""
EVAL jd2dow $ числовое $ jd1
выход $?
;;

-J), если (($ # \u003d\u003d 4)), затем
date2jd $ 2 $ 3 $ 4
выход $?
Элиф (($ # \u003d\u003d 2)), затем
jd2date $ 2 $ 3 $ 4
выход $?
еще
Принт-u2 - "$ USAGE"
Exit 1
FI
;;

-L), если (($ # \u003d\u003d 3)), затем
lastday $ 2 $ 3
выход $?
еще
Принт-u2 - "$ USAGE"
Exit 1
FI
;;

-помощь) печати - "$ USAGE"
Версия для печати ""
Версия для печати - "$ ДОКУМЕНТАЦИЯ"
выход 0
;;

*) Принт-u2 - "$ USAGE"
выход 0
;;


esac

# не достигли
выезд 7
Old 10-02-2006
cero cero is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2006
Сообщений: 56
Другой путь будет:
Код:
#!/usr/bin/ksh
RET=`sqlplus -silent rep/Ndk38f7@dw <<END
set pagesize 0 feedback off verify off heading off echo off
select decode(d1,d2,'No rows',to_char(d1)||' '||to_char(d2)) from
(select trunc(max(chg_dt)) d1 from NOT_SCHEDULED_INSTALL),
(select trunc(sysdate) d2 from dual);
exit;
END`
if [[ "$RET" = "No rows" ]] ; then
   # do something
else
  # do something else
fi
Пусть оракулов декодировать-функция сравнения для вас.
Old 01-10-2007
Джамиль Кадир Jamil Qadir is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2006
Сообщений: 13
Unix-скрипта

Мне нужно немного изменить в этом сценарии.

Мне нужно, если дата меньше sysdate его спать на 1 houre в противном случае моя abc.sh запустить скрипт.

спасибо

Джамиль
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 09:44 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0