Hi, ich will so ne while schleife machen, wo dann rechts am rand (grün) done steht oder so, ich hab ne einfache whileschleife gemacht, aber da stehts nich:
!/bin/sh
i=1
while [ $i -le 5 ]
do
echo $i
i=expr $i + 1
done
also da sind noch Absätze, die schreibs aber nich mit. Betriebssystem: Linux 2.6.27.45-0.1-pae i686 System: openSUSE 11.1 (i586) KDE: 4.1.3 (KDE 4.1.3) "release 4.11.1"
Ne Bedingung ist ja z.B: ifstatus dsl0, aber weitere fallen mir jetzt auch nicht ein, was sind denn jetzt noch solche Bedingungen? Ich hab's auch schon mit "normalen" Variablen gemacht also mit read und habe dann in einer anderen Konsole die Variable verändert, ging aber nicht (also er hat immer weiter gemacht)
in einer anderen shell die variable verändern bringt nichts, da der fork() nur das globale shell-environment mitbekommt. bedingungen sind z.b. test $c=='A' oder test $d -eq 4...usw. als bedingung kann aber im prinzip jedes kommando genutzt werden, welches einen rückgabewert besizt
Hallo, eine sogenannte "Bedingung" in einer WHILE/DO Schleife ist eigentlich eine Liste mit ausgeführten Anweisungen. Der Exit-Status der letzten Anweisung wird als Wert der Bedingung benutzt. z.B. while ! cp $1 $2; do echo "Kopiervorgang daneben gegangen. Warten.." sleep 5 done Hier besteht die Bedingung aus dem cp-Befehl zum Dateien kopieren. Geht dieses Kommando in die Hose gib es den Exit-Code ungleich 0 zurück. Dadurch wird als Anweisung dann der echo-Befehl zur Ausgabe des Textes ausgeführt. Danach wird 5sec gewartet. Eigentlich handelt es sich hier um eine UNTIL-Schleife, denn der Operator ! mach aus einer WHILE eine UNTIL... Ansonsten wie von Anderen hier schon beschrieben...
Boahh, Danke, ich bin voll Happy, des mit dem sleep brauchte ich schon, keine Ahnung wie lange!! Danke!