The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > UNIX for dummyer Spørgsmål & svar
.
google unix.com



UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen!

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Sammenlign datoen fra DB2 tabellen til gårsdagens Unix system dato sasaliasim Shell Programmering og Scripting 9 12-01-2008 11:37 PM
Få dato og tidspunkt for seneste 1 time fra den aktuelle dato spch2o Shell Programmering og Scripting 5 08-29-2008 05:32 AM
Forarbejdning en logfil, baseret på dato / tid input og dato / tid på logfilen primp Shell Programmering og Scripting 4 03-16-2008 11:23 AM
sammenligne dato med dato i filen siog UNIX for dummyer Spørgsmål & svar 2 10-04-2006 01:10 PM
sammenligne dags dato med dato i en fil siog UNIX for dummyer Spørgsmål & svar 4 10-04-2006 12:55 PM

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 Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 09-28-2006
Jamil Qadir Jamil Qadir is offline
Registreret Bruger
  
 

Join Date: Sep 2006
Stillinger: 13
Sammenlign Dato og klokkeslæt

Hej

kan nogen sende mig koden for at sammenligne to dato og køre et shell script. Følgende er den kode, som jeg actully ønsker, men jeg får fejl.

henseende


Jamil

. / opt / home / rep / .profile

#! / bin / sh
VALUE \u003d `sqlplus lydløs rep/Ndk38f7 @ dw <<SLUT
sæt pagesize 0 feedback off kontrollere off position off echo off
vælge TRUNC (max (chg_dt)) fra NOT_SCHEDULED_INSTALL;
exit;
SLUT «
Værdi2 \u003d `sqlplus lydløs rep/Ndk38f7 @ dw <<SLUT
sæt pagesize 0 feedback off kontrollere off position off echo off
vælge TRUNC (SYSDATE) fra dual;
exit;
End «
hvis [[$ value-eq $ værdi2]]; derefter
echo "Ingen rækker tilbage fra databasen"
exit 0
anden
echo $ værdi2
echo $ value
fi
  #2 (permalink)  
Old 09-28-2006
jim McNamara jim mcnamara is online now Forum Staff  
...@...
  
 

Join Date: Feb 2004
Beliggenhed: NM
Indlæg: 5.805
Oracle har allerede dato regning, ikke ksh ikke - bruge PL / SQL:

Code:
#!/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

  #3 (permalink)  
Old 09-29-2006
jamilmjq jamilmjq is offline
Registreret Bruger
  
 

Join Date: Sep 2006
Stillinger: 1
dato og tidspunkt problem

Tak for dit svar.
Problemet er det ikke fungerer korrekt, er det altid print 'ikke OK'

hvis [[$ (date_equal)-eq 1]]; derefter
echo 'OK'
anden
echo 'ikke OK'
fi

tak
  #4 (permalink)  
Old 09-29-2006
boppr6470 boppr6470 is offline
Registreret Bruger
  
 

Join Date: Aug 2006
Stillinger: 8
Og nu til noget andet

Jeg har brugt det før, og det fungerer ganske godt.
Har et par forskellige ting med datoer afhængigt af hvilke parametre.

#! / usr / bin / ksh

# Datecalc - Perderabo's dato regnemaskine
#

USAGE \u003d "\
datecalc-a År Måned Dag - År Måned Dag
datecalc-a År Måned Dag [-|+] n
datecalc-d År Måned Dag
datecalc-D År Måned Dag
datecalc-j År Måned Dag
datecalc-jn
datecalc-l år måned
bruge \ "datecalc-help \" brug for mere dokumentation "

DOKUMENTATION \u003d "\
datecalc Version 1.1

datecalc ikke mange manipulationer med datoer.
datecalc-en er til dato aritmetiske
datecalc-d eller-D omdanner en dato for den dag i ugen
datecalc-j konverterer til dato til eller fra juliansk dag
datecalc-l udgange den sidste dag i en måned

Alle datoer skal være mellem år 1860 og 3.999.

datecalc-en efterfulgt af 7 parametre vil beregne
antallet af dage mellem to datoer. Parametrene 2-4 og 6-8
skal datoer i ymd form, og parameter 5 skal være et minus
tegn. Outputtet er et heltal. Eksempel:

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


datecalc-en efterfulgt af 5 parametre vil beregne
en ny dato offset fra en given dato, Parametre 2-4 må
være en dato i ymd form, skal parameter 5 være + eller -, og
parameter 6 skal være et heltal. Output er en ny dato.
Eksempel:

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


datecalc-d efterfulgt af 3 parametre vil konvertere en dato
til en dag-for-uge. Parametre 2-4 skal være en dato i ymd
form. Eksempel:

> Datecalc-d 1960 12 31
6


datecalc-D er like-d undtagen det viser navnet på
dagen. Eksempel:

> Datecalc-D 1960 12 31
Lørdag


datecalc-j efterfulgt af 3 parametre vil konvertere en dato
til Modificeret juliansk dag nummer. Eksempel:
> Datecalc-j 1960 12 31
37299


datecalc-j efterfulgt af en enkelt parameter vil konvertere
en Modificeret juliansk dag for at få en dato. Eksempel:
> Datecalc-j 37.299
1960 12 31


datecalc-l efterfulgt af år og måneder vil produktionen af de sidste
dag i den pågældende måned. Bemærk, at ved at markere den sidste dag i
Februar kan du teste for skudår. Eksempel:
> Datecalc-l 2002 2
28 "


lastday () (
integer år måneder spring
# Ja fe ma pa ma jn jl AG se oc ingen de
sæt-A mlength xx 31 28 31 30 31 30 31 31 30 31 30 31

år \u003d $ 1
if ((year <1860 | | år> 3999)); derefter
print-u2 år uden for rækkevidde
tilbagevenden 1
fi
måned \u003d $ 2
if ((month <1 | | måned> 12)); derefter
print-u2 måneder uden for rækkevidde
tilbagevenden 1
fi

if ((måned! \u003d 2)); derefter
print $ (mlength [måned])
tilbagevenden 0
fi

spring \u003d 0
if ((! (år% 100))); derefter
((! (år% 400))) & & spring \u003d 1
anden
((! (år% 4))) & & spring \u003d 1
fi

feblength \u003d 28
((spring)) & & feblength \u003d 29
print $ feblength
tilbagevenden 0
)


date2jd () (
heltal ijd dag måned år mnjd jd Lday

år \u003d $ 1
måned \u003d $ 2
dag \u003d $ 3
Lday \u003d $ (lastday $ år $ month) | | exit $?

if ((dag <1 | | dag> Lday)); derefter
print-u2 dag uden for rækkevidde
tilbagevenden 1
fi

((standard_jd \u003d dag - 32.075
+ 1461 * (år + 4800 - (14 - måned) / 12) / 4
+ 367 * (måned - 2 + (14 - måned) / 12 * 12) / 12
- 3 * ((år + 4900 - (14 - måned) / 12) / 100) / 4))
((JD \u003d standard_jd-2400001))


print $ jd
tilbagevenden 0
)


jd2dow ()
(
heltal jd dow numeric_mode
sæt + En dag søndag mandag tirsdag onsdag torsdag fredag lørdag

numeric_mode \u003d 0
if [[$ 1 \u003d-n]]; derefter
numeric_mode \u003d 1
skift
fi


jd \u003d $ 1
if ((JD <1 | | jd> 782028)); derefter
print-u2 julianske dag uden for rækkevidde
tilbagevenden 1
fi

((dow \u003d (jd 3)% 7))

if ((numeric_mode)); derefter
print $ dow
anden
print $ (dage [dow])
fi
tilbagevenden
)

jd2date ()
(
heltal standard_jd temp1 temp2 jd år måneder dage

jd \u003d $ 1
if ((JD <1 | | jd> 782028)); derefter
print Julian dag uden for rækkevidde
tilbagevenden 1
fi
((standard_jd \u003d jd 2.400.001))
((temp1 \u003d standard_jd + 68569))
((temp2 \u003d 4 * temp1/146097))
((temp1 \u003d temp1 - (146097 * temp2 + 3) / 4))
((år \u003d 4000 * (temp1 + 1) / 1.461.001))
((temp1 \u003d temp1 - 1461 * år / 4 + 31))
((måned \u003d 80 * temp1 / 2447))
((dag \u003d temp1 - 2447 * måned / 80))
((temp1 \u003d måned / 11))
((måned \u003d måned + 2 - 12 * temp1))
((år \u003d 100 * (temp2 - 49) + år + temp1))
print $ år $ måned $ dag
tilbagevenden 0
)


#
# Parse parametre og kommer til at arbejde.
tilfælde $ 1 i
-a) if (($ # \u003d\u003d 8)); derefter
hvis [[$ 5! \u003d -]]; derefter
print-U2 - "$ USAGE"
exit 1
fi
JD1 \u003d $ (date2jd $ 2 $ 3 $ 4) | | exit $?
jd2 \u003d $ (date2jd $ 6 $ 7 $ 8) | | exit $?
((jd3 \u003d JD1-jd2))
print $ jd3
exit 0
elif (($ # \u003d\u003d 6)); derefter
JD1 \u003d $ (date2jd $ 2 $ 3 $ 4) | | exit $?
tilfælde $ 5 i
- | +) Eval '((' jd2 \u003d $ (JD1) $ (5) $ (6 }'))'
jd2date $ jd2
exit $?
;;
*)
print-U2 - "$ USAGE"
exit 1
;;
ESAC

fi
;;

-d |-D) if (($ #! \u003d 4)); derefter
print-U2 - "$ USAGE"
exit 1
fi
JD1 \u003d $ (date2jd $ 2 $ 3 $ 4) | | exit $?
numeriske \u003d- n
[[$ 1 \u003d-D]] & & numerisk \u003d ""
eval jd2dow $ numeriske $ JD1
exit $?
;;

-j) if (($ # \u003d\u003d 4)); derefter
date2jd $ 2 $ 3 $ 4
exit $?
elif (($ # \u003d\u003d 2)); derefter
jd2date $ 2 $ 3 $ 4
exit $?
anden
print-U2 - "$ USAGE"
exit 1
fi
;;

-l) if (($ # \u003d\u003d 3)); derefter
lastday $ 2 $ 3
exit $?
anden
print-U2 - "$ USAGE"
exit 1
fi
;;

-hjælp) print - "$ USAGE"
print ""
print - "$ DOKUMENTATION"
exit 0
;;

*) Print-U2 - "$ USAGE"
exit 0
;;


ESAC

# ikke nået
exit 7
  #5 (permalink)  
Old 10-02-2006
cero cero is offline
Registreret Bruger
  
 

Join Date: Aug 2006
Stillinger: 56
En anden måde ville være:

Code:
#!/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

Lad Oracles afkode-funktionen sammenligner for dig.
  #6 (permalink)  
Old 01-10-2007
Jamil Qadir Jamil Qadir is offline
Registreret Bruger
  
 

Join Date: Sep 2006
Stillinger: 13
UNIX script

Jeg har brug for en lille ændring i dette script.

Jeg har brug for, når den dato er mindre end SYSDATE det sove i 1 houre ellers køre min abc.sh script.

tak

Jamil
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 05:52 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0