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.
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"