Bash while Schleife: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Die while-Schleife= ==Einfache Form== Die while-Schleife wird so lange durchlaufen, bis der Returncode ungleich null ist. *cat proggi <syntaxhighlight> #!/bi…“)
 
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 3: Zeile 3:
 
Die while-Schleife wird so lange durchlaufen, bis der Returncode ungleich null ist.
 
Die while-Schleife wird so lange durchlaufen, bis der Returncode ungleich null ist.
 
*cat proggi
 
*cat proggi
<syntaxhighlight>
+
<syntaxhighlight lang=bash>
 
  #!/bin/bash
 
  #!/bin/bash
 
  while [ $# -ge 1 ]
 
  while [ $# -ge 1 ]
Zeile 26: Zeile 26:
  
 
Beispiel:
 
Beispiel:
<syntaxhighlight>
+
<syntaxhighlight lang=bash>
 
#!/bin/bash
 
#!/bin/bash
 
COUNTER=$1
 
COUNTER=$1
Zeile 47: Zeile 47:
 
Die Variable SUX wird nacheinander mit jeder Zeile der Datei  
 
Die Variable SUX wird nacheinander mit jeder Zeile der Datei  
 
/etc/passwd belegt, bis die letzte Zeile der Datei /etc/passwd erreicht ist.
 
/etc/passwd belegt, bis die letzte Zeile der Datei /etc/passwd erreicht ist.
<syntaxhighlight>
+
<syntaxhighlight lang=bash>
 
  #!/bin/bash
 
  #!/bin/bash
 
  while read SUX
 
  while read SUX
do
+
  do
echo $SUX
+
  echo $SUX
 
  done  <  /etc/passwd
 
  done  <  /etc/passwd
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Selbstgebautes cat  
 
Selbstgebautes cat  
<syntaxhighlight>
+
<syntaxhighlight lang=bash>
 
#!/bin/bash
 
#!/bin/bash
 
while read ZEILE
 
while read ZEILE
 
  do
 
  do
 
   echo $ZEILE
 
   echo $ZEILE
done < $1
+
done < $1
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Selbstgebautes tac
 
Selbstgebautes tac
<syntaxhighlight>
+
<syntaxhighlight lang=bash>
 
#!/bin/bash
 
#!/bin/bash
 
COUNT=0
 
COUNT=0
Zeile 75: Zeile 75:
 
  echo ${FELD[$COUNT]}
 
  echo ${FELD[$COUNT]}
 
  COUNT=$(($COUNT-1))
 
  COUNT=$(($COUNT-1))
done
+
done
 
</syntaxhighlight>
 
</syntaxhighlight>

Aktuelle Version vom 6. Juni 2024, 08:17 Uhr

Die while-Schleife

Einfache Form

Die while-Schleife wird so lange durchlaufen, bis der Returncode ungleich null ist.

  • cat proggi
 #!/bin/bash
 while [ $# -ge 1 ]
 do
  echo $1
  echo $#
  shift
 done
  • ./proggi blau gelb gruen
blau
3
gelb
2
gruen
1

Darstellung als Struktogramm nach Nassi / Shneiderman:

While.jpg

Beispiel:

#!/bin/bash
COUNTER=$1
 while [ $COUNTER -ge 1 ]
  do
   echo $COUNTER
   COUNTER=$(($COUNTER-1))
 done
echo "BUMM BUMM"
  • ./countdown 5
5
4
3
2
1
BUMM BUMM

Sonderform von while

Die Variable SUX wird nacheinander mit jeder Zeile der Datei /etc/passwd belegt, bis die letzte Zeile der Datei /etc/passwd erreicht ist.

 #!/bin/bash
 while read SUX
   do
   echo $SUX
 done  <  /etc/passwd

Selbstgebautes cat

#!/bin/bash
while read ZEILE
 do
  echo $ZEILE
done < $1

Selbstgebautes tac

#!/bin/bash
COUNT=0
while read ZEILE
 do
 FELD[$COUNT]=$ZEILE
 COUNT=$(($COUNT+1))
 done < $1
while [ $COUNT -ge 0 ]
 do
 echo ${FELD[$COUNT]}
 COUNT=$(($COUNT-1))
done