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
if/then/else
if/then/else
bye
Riedel -> www.riedelweb.de
Riedel -> www.riedelweb.de
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?
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?
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 <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
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 <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
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 <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
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 <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
bye
Riedel -> www.riedelweb.de
Riedel -> www.riedelweb.de
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...
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...