Bash Steuerung der Ablaufanweisungen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

exit n

Der aktuelle Prozess und damit auch die bash werden abgebrochen. Für n kann eine Zahl zwischen 0 und 255 angegeben werden; damit kann der Returncode des Prozesses festgelegt werden, der an den aufrufenden Prozess übergeben wird.

Zur Schleifensteuerung können die Befehle continue und break verwendet werden. Sie dürfen nur zwischen den Schlüsselwörtern do und done stehen.

continue n

Der aktuelle Schleifendurchlauf wird abgebrochen, um mit dem nächsten Durchlauf zu beginnen. Bei Verschachtelungen kann durch Angabe einer Ganzzahl in der n-ten Schleifenebene angesetzt werden.

#!/bin/bash
for CLUB in fck bvb bayern fcs
 do
  if [ $CLUB = "bayern" ]
   then
     echo "zeig ich nicht an"
     continue
     exit
   fi
 echo $CLUB
 done
  • ./fussball
fck
bvb
zeig ich nicht an
fcs

Select

Mit dem Befehl bash select können verschiedene Arten von Menüerstellungsaufgaben, das Erstellen einer menübasierten Listen, das Erstellen eines Menüs aus Dateiinhalten usw. ausgeführt werden.


#!/bin/bash
select auswahl in Punkt1 Punkt2 Punkt3 Punkt4
do
   echo "Ihre Auswahl war : $auswahl"
done
#!/bin/bash
PS3="Datei zum Editieren auswählen : "
select AUSWAHL in *.sh exit
do
   case "$AUSWAHL" in
      exit)
           echo "exit" 
           break
          ;;
        "")
           echo "$REPLY: Ungültige Auswahl" 
           ;;
         *)
             if [ -d "$AUSWAHL" ]
              then
                echo "Verzeichnis kann nicht editiert werden"
                continue
              else
                $EDITOR $AUSWAHL
               fi
              break
            ;;
   esac
done



break n

Die aktuelle Schleife wird abgebrochen, danach wird mit der ersten Anweisung nach der Schleife weitergemacht. Bei Verschachtelungen wird auf der n-ten Schleifenebene aufgesetzt.

Anmerkung: Ein sinnvoller Einsatz dieser Konstrukte liegt in der Behandlung von Ausnahmen (Fehler). Intensiver Einsatz macht die Programme unleserlich und schwer kontrollierbar. Daher ist eine sparsame Verwendung empfehlenswert.

#!/bin/bash 
while true
 do
  test -f /tmp/sux && break  
  echo "unn weiter"
  sleep 3
 done
 echo  "und tschuess"