Hallo,
for i in 5 4 3 2 1; do sleep "$i"s; echo $i & done
for i in 5 4 3 2 1; do sleep „$i“; echo $i; done
das s ist bei sleep nicht nötig, per default nimmt er Sekunden an. Und du solltest eine ; statt & nehmen.
die o.g. zeile funktioniert nicht, und haette gern gewusst,
wie ich sie richtig notieren muss.
ergebnis haette sein sollen, dass die zahlen in aufsteigender
reihenfolge ausgegeben werden. dazu soll sleep die ausgabe
verzoegern.
Wenn du sie in aufsteigender Reihenfolge haben willst, dann solltest du sie auch in aufsteigender Reihenfolge hinschreiben:
for i in 1 2 3 4 5…
das eigentliche ziel der uebung war n prozesse zu starten, die
aber nicht auf die vorher gestarteten warten.
Ist das denn Absicht, dass die sleeps unterschiedlich lange warten?
Oder sollen die sleeps im Hintergrund starten? dann ist
for i in 5 4 3 2 1; do sleep „$i“& echo $i; done
das Richtige. Oder willst du gar, dass die sleeps im Hintergrund gestartet werden, und wenn eines beendet ist es die entsprechende Zahl ausgibt? dann ist
for i in 5 4 3 2 1; do (sleep "$i"s; echo $i)& done
wohl das was du suchst. Die „Magie“ steckt hier darin, den Prozess und sein dazugehöriges „echo“ gemeinsam in einer Subshell im Hintergrund zu starten…
GrĂĽĂźe,
Moritz (der hofft, dass die richtige Alternative dabei war)
any hints?
danke, gruss joerg