PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [bash] while... ich bekomms nicht hin



quinte17
13-04-2004, 10:12
es soll ganz einfach sein
ein programm soll immer laufen, wenn es beendet wird (egal durch was) soll es sofort wieder gestartet werden... ich habe mir des so ungefähr gedacht, funzt aba nicht

while 1 do
echo "hallo"
done

ich habe schon hier im forum gesucht, finde aber nichts... und ich bin ein kleiner bash noob ^^

greetz

peschmae
13-04-2004, 10:49
Endlosschleife?



while $(true); do echo hallo; done


mit until z.B.


until (()); do echo blubb; done


und mit for:


for ((;;)); do echo blubb; done


MfG Peschmä

Thomas Engelke
13-04-2004, 14:45
Entschuldigung, daß ich mich hier einmische, aber ich habe eine Frage über dein Endlos-for, Peschmä.

Warum wird in C für for(;;) angenommen, sie wäre endlos, obwohl doch der Leerwert zwischen den Semikola sich schwerlich zu Nicht-0 auswerten läßt? Dies scheint mir eine Inkonsistenz zur sonst so schön logisch aufgebauten Sprache zu sein.

AD!

peschmae
13-04-2004, 16:46
genau so schwer wäre es wohl da auf 0 zu kommen - denn wir haben hier ja nicht 0 sondern nix vor uns.

Der Grund für das Verhalten ist, dass es einen Default-Wert gibt. Die drei Parameter sind alle optional - und der Default-Wert beim mittleren und entscheidenden ist halt true. :)

Im C++-Buch von Stroustroup steht for etwa so da:
for ( for-init-statement; condition_opt; expression_opt) statement

Der Default-Wert von condition_opt ist hier halt true :)

MfG Peschmä