Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
if/then/else

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
riedel1



Anmeldungsdatum: 16.08.1999
Beiträge: 2
Wohnort: BS

BeitragVerfasst am: 24. Sep 2000 12:35   Titel: if/then/else

Hi ho,

wieder mal ein Problem.

Ich habe ein shell script geschrieben das auch funktioniert.
Das Script soll für die SuSE7.0 DoD fuer T-DSL automatisch installieren (kann die 7.0 ja noch nicht).
In diesem Script werden in zwei dateien befehle reingeschrieben (ueber echo bla >>/datei)
Jetzt haette ich aber gerne eine Ueberpruefung ob die befehle schon vorhanden sind. Sind sie vorhanden, soll sich das Programm beenden.

Zur Zeit sieht es so aus (adod heist das Script)

if grep "demand" /bla/datei1
then
echo" datei1 schon ready"
killall adod

else
script abarbeiten

fi

Soweit so gut.
Damit wird aber nur die Datei1 kontr., nicht aber auch Datei2.
Ich moechte aber nicht nur kontr. ob in Datei1 schonwas steht, sondern auch noch kontr. ob Datei2 shon Modefiziert worden ist. Wenn ja, dann soll das Script seine Arbeit beenden, bzw. ist nichts vorhanden soll das Script weiter arbeiten.

DANKE
_________________
bye
Riedel -> www.riedelweb.de
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

hugenay
Gast





BeitragVerfasst am: 24. Sep 2000 15:38   Titel: Re: if/then/else

Dateimodifizierungen liessen sich doch mit "test" rauskriegen, oder nem Gegenstück zu "touch" (man pages mal checken), hab ich gerade nicht im Kopf, find kann das ja....

ich hab dich aber noch nicht ganz verstanden. was ist datei 2, die abgedruckte? verfahre doch einfach so wie mit Datei 2. Brauchst du überhaupt 2 Dateien? oder ist eine das Skript und die andere ne Ablage für nen Variablenwert?
 

riedel1



Anmeldungsdatum: 16.08.1999
Beiträge: 2
Wohnort: BS

BeitragVerfasst am: 24. Sep 2000 15:56   Titel: Re: if/then/else

Hi,

ich hoffe das ich mich jetzt besser ausdruecke.....

das Script aendert zwei Dateien.
echo "bla1" >>/etc/datei1 # schreibe bla1 in /etc/datei1
echo "bla2" >>/etc/datei2 #schreibe bla2 in /etc/datei2

Datei1 kann ich testen lassen mit:
if grep "bla1" /etc/datei1
then
echo" datei1 schon ready"
killall adod

else
was hier steht, soll ausgefuehrt werden.

Mein Problem ist jetzt, dass ich nicht weis wie ich auch noch Datei2 testen lassen kann.
Ich moechte erreichen, das erst kontr. wird ob in "Datei1" das Wort "bla1" vorkommt und danach (und das ist mein Problem) testen ob in "Datei2" das Wort "bla2" vorkommt.
Wenn in Datei1 und Datei2 die Woerter gefunden werden, soll das Programm abbrechen.
Findet er in keiner der Dateien die Woerter (und nur dann), soll das Programm weiter machen.

Leider sind meine Programmierkenntisse gleich /dev/null

Ich stelle mir das also so vor (ich weiss, was jetzt kommt geht nicht, aber ich hoffe es wird klarer was ich moechte)

if grep "bla1" /etc/datei1
then
echo" datei1 schon ready"
killall adod

if grep "bla2" /etc/datei2
then
echo" datei2 schon ready"
killall adod

else
script abarbeiten

fi

Verstehst du jetzt was ich erreichen moechte??
Ich hoffe es jedenfalls
_________________
bye
Riedel -> www.riedelweb.de
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

hugenay
Gast





BeitragVerfasst am: 24. Sep 2000 16:44   Titel: Re: if/then/else

>>Ich stelle mir das also so vor (ich weiss, was jetzt kommt geht nicht, aber ich hoffe es wird klarer was ich moechte)<<

wieso geht das nicht? in der shell kann man doch if-Schleifen schachteln (oder bin ich jetzt schon perl-geprägt?)...
sonst kannst du eine Schleife ja als Funktion ausdrücken, die nen boolschen Wert (0/1)zurückgibt und das lässt sich ja gut testen ( test oder [] ) oder mit dem logischen UND Operator (&&). Also: if [ grep "demand" /bla/datei1 && grep "demandzwotens" /bla/datei2 ] ; then killall adod; else adod ; fi
Hm, das ist wohl noch am elegantesten. Ist übrigens ziemlich schwer wenn man sich gerade mit perl beschäftigt, da kann man leicht was mit der shell durcheinanderzubringen...
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy