Hi Liste, ich bin gerade dabei, mir ein kleines Skript zu schreiben und bin dabei über ein Verhalten gestolpert, das ich mir nicht erklären kann und für falsch halte! Folgende Situation: Ich habe 2 Dateien ("ifcfg-eth0-all" und "ifcfg-eth0-base"), die ich als Original für die Datei "/etc/sysconfig/network/ifcfg-eth0" verwenden will. Dazu prüfe ich dann durch das folgenden Skript, ob eben diese Datei von anderer Stelle aus geändert wurde. Ich nahm eigentlich an, daß diff "true" (=0) zurück gibt, wenn die Dateien gleich sind. Dementsprechend müßte dann ein "!" (nicht) vor das Kommando in der IF-Bedingung. Dann erhalte ich aber immer: "someone changed the file" (Kopie entspricht NICHT einer der beiden Originale, ist also keine Kopie). Die Kopie ist aber tatsächlich eine Kopie einer der anderen beiden Dateien und sollte dementsprechend "true" ergeben, was es auch tut. Damit müßte ich aber den bedingten Ausdruck negieren ("!"), was dann aber nicht funktioniert. Hätte vielleicht jemand eine Idee, wieso? ---------------------- Start of Skript --------------------- #!/bin/bash CFGDIR=/etc/sysconfig/network CFGNAM=ifcfg-eth0 SRCDIR=/root/bin ALLNAM=ifcfg-eth0-all BASNAM=ifcfg-eth0-base # Testausgaben für die einzelnen Teile diff -q $CFGDIR/$CFGNAM $SRCDIR/$ALLNAM >/dev/null echo "$ALLNAM: $?" diff -q $CFGDIR/$CFGNAM $SRCDIR/$BASNAM >/dev/null echo "$BASNAM: $?" [ `diff -q $CFGDIR/$CFGNAM $SRCDIR/$BASNAM >/dev/null || diff -q $CFGDIR/$CFGNAM $SRCDIR/$ALLNAM >/dev/null` ] echo "[ $? ]" if [ `diff -q $CFGDIR/$CFGNAM $SRCDIR/$ALLNAM >/dev/null || diff -q $CFGDIR/$CFGNAM $SRCDIR/$BASNAM >/dev/null` ] then echo "$CFGDIR/$CFGNAM: unknwon version - someone changed the file" exit 1 fi echo Ok so far exit 0 ---------------------- End of Skript --------------------- Grüße Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org