Die Shell-Skript-Zeilen
for a in 0 2 10; do
echo $a done
erzeugen eine Ausgabe. Welche?
0, 2, 10 (auf separaten Zeilen)
0, 2, 4, 6, 8, 10 (auf separaten Zeilen)
0 2 10
LPI-Lernziel Einfache Skripte anpassen oder schreiben (105.2)
Eine for-in-Schleife wird so oft durchlaufen, wie Listenelemente
angegeben wurden. In dem Shell-Skript sind als Listenelemente 0, 2 und 10
aufgeführt; damit lautet die erzeugte Ausgabe 0, 2, 10 (auf separaten
Zeilen).
Warum gibt das Skript nicht 0 2 10 aus? Erinnern Sie sich daran, dass die
Listenelemente durch Leerzeichen getrennt werden. Die Liste hat darum
drei Elemente und nicht nur eins. Lassen Sie sich auch nicht irreführen,
indem Sie annehmen, die Schleife würde zählen -- dafür gibt es zum Beispiel
das seq-Kommando:
for a in `seq 0 2 10`; ...
würde die Ausgabe in Antwort 2 produzieren.
Nicht angemeldet