Home · Kontakt · Impressum
contents index previous up next
Next: 15.3.7 until ... do Up: 15.3 Grundstrukturen Previous: 15.3.5 dialog


15.3.6 while ... do ... done

Oft müssen Aktionen wiederholt werden. Dazu dienen Schleifen. Eine einfache Schleife ist while. Solange der getestete Ausdruck wahr ist, solange wird ein Anweisungsblock ausgeführt.

while AUSDRUCK
do
  ....
done

Ein Beispiel ist das folgende Skript, daß die Adressen eines C-Netzes nach angeschlossenen durchsucht. Dabei wird die Host-Adresse so lange hochgezählt, bis der Endwert erreicht ist.

Listing 15.10   pingall

   1: #!/bin/bash
   2: 
   3: # Pingt die Rechner eines C-Klasse-Netzes an
   4: 
   5: # Werte festlegen
   6: netz='217.89.70.'  # Fester Teil der IP-Nummer
   7: start=1            # Startwert
   8: ende=254           # Endwert
   9: 
  10: # Schleife initialisieren
  11: i=$start
  12: # Testen, ob der Anweisungsblock noch einmal ausgeführt werden soll
  13: while [ $i -le $ende ]
  14: do
  15:   adresse=$netz$i                       # Adresse zusammensetzen
  16:   echo -ne "\n$adresse"                 # Adresse ausgeben
  17: 
  18:   # Pingen und auf Erfolg testen
  19:   ping -w 2 $adresse | grep ' 0% loss' &> /dev/null
  20:   if [ $? -eq 0 ] 
  21:   then
  22:     echo -n "  --- Rechner vorhanden ---"
  23:   fi
  24: 
  25:   # Host hochzählen
  26:   i=$(($i+1))
  27: done
  28: 
  29: echo -e "\n\nFertig"



  © 2004 by IT-Dozent Ole Vanhoefer · Zum Seitenanfang