* Thomas Lichtenberg schrieb am 23.Jun.2000:
In einem script moechte ich abfragen, ob eine Datei nicht mehr existiert. Also die Umkehrung zu
while [ ! -e ~/file ] ^ Das ist doch schon die Umkehrung, die Du suchst. ! kehrt um. Wenn Du es nochmal umkehren willst, dann laß der Einfachheit halber das ! weg.
do sleep 5 done
Ein "man bash" zeigt mir unter CONDITIONAL EXPRESSIONS immer nur ein "True if file exists" an. Geht das mit'ner einfachen Schleife nicht?
Doch, sowohl if als auch while erwarten als Bedinung einen Befehl. Da könnte auch echo stehen, was aber keinen Sinn macht, oder ein grep, was durchaus Sinn macht. Wenn der Befehl eine 0 als Exitwert zurückgibt, so gilt das als True, wenn er aber was anderes zurückgibt, dann gilt es als False. So ist z.B if grep -s WORT Datei then ... durchaus Sinnvoll. Es wird der then-Teil ausgeführt, wenn grep was gefunden hat. Der evtl. else-Teil hingegen, wenn grep nicht fündig geworden ist. Das -s verhindert eine Ausgabe von grep. Meist wird als Befehl [...] bzw. test genommen. Das ist aber ein eigener Befehl und nicht Teil der if bzw. while Syntax, wenn auch ein shell-Builtin. Dieser Befehl gibt nur einen Exit-Code zurück, sonst nichst. Das ! ist Teil der test Syntax und ist es egal, ob es hinter if oder while steht. Man kann auch test ! -e irgendwas ohne ein if davor sagen. Du bekommst dann halt nur einen exit-Code, den Du Dir mit echo $? ansehen kannst. Aber nur unmittelbar nach diesen Befehl, weil ein neuer Befehl wieder einen eigenen erzeugen würde. $ cd / $ echo $? 0 $ cd /Muell bash: cd: Muell: Datei oder Verzeichnis nicht gefunden $ echo $? 1 $ echo $? 0 Beim zweitenmal wird eine 0 ausgegeben, weil das echo davor keinen Fehler hatte. Bernd -- Probleme mit dem Drucker? Schon die Druckercheckliste beachtet? http://localhost/doc/sdb/de/html/drucker-howto.html | Auch lesenswert: Oder schon das Drucker-HOWTO gelesen? | man lpr file://usr/doc/howto/de/DE-Drucker-HOWTO.txt.gz | Zufallssignatur 3 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com