Bash for Schleife: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= Die for-Schleife = ==Standard For Schleife== Bei der for-Schleife wird bei jedem Durchlauf der Schleifenvariablen ein Wert aus einer angegebenen Liste zugew…“)
 
 
(10 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 25: Zeile 25:
 
==For Schleife mit Stellungsparametern==
 
==For Schleife mit Stellungsparametern==
 
Wird keine Liste angegeben, wird standardmäßig die Liste der Stellungsoperanden benutzt. Folgende Anweisungen sind äquivalent  
 
Wird keine Liste angegeben, wird standardmäßig die Liste der Stellungsoperanden benutzt. Folgende Anweisungen sind äquivalent  
<syntaxhighlight>
+
<syntaxhighlight lang=bash>
 
#!/bin/bash
 
#!/bin/bash
 
for LAUF in $*
 
for LAUF in $*
Zeile 33: Zeile 33:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Kurzform :
 
Kurzform :
<syntaxhighlight>
+
<syntaxhighlight lang=bash>
 
for LAUF  
 
for LAUF  
 
  do
 
  do
Zeile 43: Zeile 43:
 
Der Stern würde durch alle Dateien des aktuellen Verzeichnisses ersetzt werden.
 
Der Stern würde durch alle Dateien des aktuellen Verzeichnisses ersetzt werden.
 
Daraus folgt, dass der Name jeder Datei nacheinander in die Variable LAUF geschreiben wird. Die Anzahl der Schleifenläufe  
 
Daraus folgt, dass der Name jeder Datei nacheinander in die Variable LAUF geschreiben wird. Die Anzahl der Schleifenläufe  
ist identisch mit der Anzahl von Dateien.  
+
ist identisch mit der Anzahl von Dateien.
<syntaxhighlight>  
+
 
 +
<syntaxhighlight lang=bash>
 
#!/bin/bash
 
#!/bin/bash
 
for LAUF in *
 
for LAUF in *
 
do
 
do
echo $LAUF
+
  echo $LAUF
 
done
 
done
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
Hier die Variante mit einem grossen K
 
Hier die Variante mit einem grossen K
<syntaxhighlight>
+
<syntaxhighlight lang=bash>
 
#!/bin/bash
 
#!/bin/bash
 
for LAUF in K*
 
for LAUF in K*
do
+
  do
echo $LAUF
+
  echo $LAUF
 
done
 
done
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
==For Schleife im C Stil==
 
==For Schleife im C Stil==
 
Mit Bash-Version 2.0.4 wurde die for-Schleife um eine an die Programmier-sprache C angelehnte Syntaxvariante erweitert:  
 
Mit Bash-Version 2.0.4 wurde die for-Schleife um eine an die Programmier-sprache C angelehnte Syntaxvariante erweitert:  
Zeile 67: Zeile 70:
 
  done  
 
  done  
 
*cat foor
 
*cat foor
<syntaxhighlight>
+
<syntaxhighlight lang=bash>
 
  #!/bin/bash
 
  #!/bin/bash
 
  for ((I=1;I<5;I++))
 
  for ((I=1;I<5;I++))
do
+
  do
echo $I
+
    echo $I
 
  done
 
  done
 
</syntaxhighlight>
 
</syntaxhighlight>

Aktuelle Version vom 20. Juni 2024, 07:06 Uhr

Die for-Schleife

Standard For Schleife

Bei der for-Schleife wird bei jedem Durchlauf der Schleifenvariablen ein Wert aus einer angegebenen Liste zugewiesen; die Liste wird dabei von links nach rechts durchlaufen. Nach der letzten Wertzuweisung terminiert die for-Schleife.

  • cat fussball
 #!/bin/bash
 for CLUB in fck bvb schalke bmg
  do
   echo $CLUB
 done
  • ./fussball
fck
bvb
schalke
bmg

Darstellung als Struktogramm nach Nassi / Shneiderman:

For.jpg

For Schleife mit Stellungsparametern

Wird keine Liste angegeben, wird standardmäßig die Liste der Stellungsoperanden benutzt. Folgende Anweisungen sind äquivalent

#!/bin/bash
for LAUF in $*
 do
  echo $LAUF
 done

Kurzform :

for LAUF 
 do
  echo $LAUF
 done

For Schleife mit Dateien aus dem aktuellen Verzeichnis

Der Stern würde durch alle Dateien des aktuellen Verzeichnisses ersetzt werden. Daraus folgt, dass der Name jeder Datei nacheinander in die Variable LAUF geschreiben wird. Die Anzahl der Schleifenläufe ist identisch mit der Anzahl von Dateien.

#!/bin/bash
for LAUF in *
do
   echo $LAUF
done

Hier die Variante mit einem grossen K

#!/bin/bash
for LAUF in K*
  do
   echo $LAUF
done

For Schleife im C Stil

Mit Bash-Version 2.0.4 wurde die for-Schleife um eine an die Programmier-sprache C angelehnte Syntaxvariante erweitert:

for ((Initialisierung der Laufvaribale; Laufbedingung; Veränderung der Laufvariable))
do 
Kommando
done 
  • cat foor
 #!/bin/bash
 for ((I=1;I<5;I++))
   do
     echo $I
 done
  • ./foor
1
2
3
4