Bash Die while-Schleife: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(13 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Was ist das?==
 
==Was ist das?==
*Das "while"-Statement in Bash ermöglicht die wiederholte Ausführung von Code, solange eine bestimmte Bedingung erfüllt ist.
+
*Die While-Schleife in Bash wird verwendet, um einen Block von Code so lange auszuführen, wie eine bestimmte Bedingung wahr ist.
*Die Syntax des "while"-Statements besteht aus dem Schlüsselwort "while", gefolgt von einer Bedingung in runden Klammern und einem abschließenden Semikolon.
+
*Die grundlegende Syntax einer While-Schleife in Bash lautet:
*Der Codeblock, der wiederholt ausgeführt werden soll, wird durch "do" eingeleitet und durch "done" beendet.
+
<syntaxhighlight lang=bash>
*Während das "while"-Statement ausgeführt wird, wird die Bedingung vor jeder Iteration überprüft.  
+
while [ Bedingung ]
*Dolange die Bedingung wahr ist, wird der Codeblock wiederholt ausgeführt. Sobald die Bedingung nicht mehr erfüllt ist, wird die Schleife beendet und die Ausführung wird fortgesetzt.
+
do
*Das "while"-Statement ist nützlich, um Schleifen basierend auf dynamischen Bedingungen zu erstellen und so wiederholte Aktionen in Shell-Skripten zu implementieren.
+
  # Code, der wiederholt ausgeführt werden soll
 +
done
 +
</syntaxhighlight>
 +
==Nassi-Shneiderman-Diagram==
 +
{{#drawio:while-nassi}}
 +
 
 +
=Hier sind die Schritte, die bei der Ausführung einer While-Schleife in Bash ablaufen=
 +
*Die Bedingung wird zuerst überprüft.
 +
*Wenn die Bedingung wahr (true) ist, wird der Codeblock innerhalb der Schleife ausgeführt.
 +
*Wenn die Bedingung falsch (false) ist, wird die Schleife übersprungen, und die Ausführung des Programms geht zum nächsten Abschnitt nach der Schleife.
 +
 
 +
*Der Codeblock innerhalb der Schleife wird ausgeführt.
 +
*Dieser Code kann eine oder mehrere Anweisungen enthalten, die wiederholt werden sollen.
 +
*Du kannst Variablen aktualisieren, Berechnungen durchführen, Dateien bearbeiten oder andere Aufgaben ausführen.
 +
 
 +
*Nachdem der Codeblock ausgeführt wurde, kehrt das Programm zur Überprüfung der Bedingung zurück.  
 +
*Wenn die Bedingung immer noch wahr ist, wird der Codeblock erneut ausgeführt. #
 +
*Wenn die Bedingung falsch wird, wird die Schleife beendet, und die Ausführung des Programms wird fortgesetzt.
 +
 
 +
*Schritte 2 und 3 werden so lange wiederholt, wie die Bedingung wahr ist.
 +
*Sobald die Bedingung falsch wird, wird die While-Schleife beendet, und das Programm fährt mit dem restlichen Code fort.
 +
 
 +
*Es ist wichtig sicherzustellen, dass der Code innerhalb der While-Schleife so gestaltet ist, dass die Bedingung irgendwann falsch wird, um eine Endlosschleife zu vermeiden.
 +
*Andernfalls könnte der Code unendlich wiederholt werden, was zu einer unerwünschten Ausführung führen würde.
 +
 
 +
*Die Bedingung in einer While-Schleife kann verschiedene Ausdrücke und Vergleiche enthalten, z. B. Überprüfungen von Variablenwerten, Dateieigenschaften oder Benutzereingaben.
 +
*Solange die Bedingung wahr ist, wird der Codeblock wiederholt ausgeführt. Sobald die Bedingung falsch wird, wird die Schleife beendet.
 +
 
 
==Einfache Form==
 
==Einfache Form==
 
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.
Zeile 28: Zeile 55:
 
  1
 
  1
  
Darstellung als Struktogramm nach Nassi / Shneiderman:
 
  
[[Image:while.jpg]]
 
  
 
Beispiel:
 
Beispiel:
Zeile 78: Zeile 103:
 
  COUNT=$(($COUNT+1))
 
  COUNT=$(($COUNT+1))
 
  done < $1
 
  done < $1
 +
COUNT=$(($COUNT-1))
 
while [ $COUNT -ge 0 ]
 
while [ $COUNT -ge 0 ]
 
  do
 
  do
Zeile 84: Zeile 110:
 
  done
 
  done
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=Aufgaben=
 +
*[[Aufgaben Bash while]]

Aktuelle Version vom 7. Juni 2023, 08:54 Uhr

Was ist das?

  • Die While-Schleife in Bash wird verwendet, um einen Block von Code so lange auszuführen, wie eine bestimmte Bedingung wahr ist.
  • Die grundlegende Syntax einer While-Schleife in Bash lautet:
while [ Bedingung ]
do
  # Code, der wiederholt ausgeführt werden soll
done

Nassi-Shneiderman-Diagram

Hier sind die Schritte, die bei der Ausführung einer While-Schleife in Bash ablaufen

  • Die Bedingung wird zuerst überprüft.
  • Wenn die Bedingung wahr (true) ist, wird der Codeblock innerhalb der Schleife ausgeführt.
  • Wenn die Bedingung falsch (false) ist, wird die Schleife übersprungen, und die Ausführung des Programms geht zum nächsten Abschnitt nach der Schleife.
  • Der Codeblock innerhalb der Schleife wird ausgeführt.
  • Dieser Code kann eine oder mehrere Anweisungen enthalten, die wiederholt werden sollen.
  • Du kannst Variablen aktualisieren, Berechnungen durchführen, Dateien bearbeiten oder andere Aufgaben ausführen.
  • Nachdem der Codeblock ausgeführt wurde, kehrt das Programm zur Überprüfung der Bedingung zurück.
  • Wenn die Bedingung immer noch wahr ist, wird der Codeblock erneut ausgeführt. #
  • Wenn die Bedingung falsch wird, wird die Schleife beendet, und die Ausführung des Programms wird fortgesetzt.
  • Schritte 2 und 3 werden so lange wiederholt, wie die Bedingung wahr ist.
  • Sobald die Bedingung falsch wird, wird die While-Schleife beendet, und das Programm fährt mit dem restlichen Code fort.
  • Es ist wichtig sicherzustellen, dass der Code innerhalb der While-Schleife so gestaltet ist, dass die Bedingung irgendwann falsch wird, um eine Endlosschleife zu vermeiden.
  • Andernfalls könnte der Code unendlich wiederholt werden, was zu einer unerwünschten Ausführung führen würde.
  • Die Bedingung in einer While-Schleife kann verschiedene Ausdrücke und Vergleiche enthalten, z. B. Überprüfungen von Variablenwerten, Dateieigenschaften oder Benutzereingaben.
  • Solange die Bedingung wahr ist, wird der Codeblock wiederholt ausgeführt. Sobald die Bedingung falsch wird, wird die Schleife beendet.

Einfache Form

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

Beispiel

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


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
COUNT=$(($COUNT-1))
while [ $COUNT -ge 0 ]
 do
 echo ${FELD[$COUNT]}
 COUNT=$(($COUNT-1))
 done

Aufgaben