select-Schleife

Mit select kann man schnell und einfach ein kleines Menü zaubern. Sozusagen fast food für die Shellprogrammierung.

select zeigt in einer Endlosschleife eine Auswahl für den Benutzer an. Die Schleife verläßt man bei Bedarf mit break im Skript.

Die Struktur ähnelt sehr einer for-Schleife:
for name in ersteauswahl zweiteauswahl dritteauswahl...
do
# In $name steht der Text der Auswahl
done

Beispiel 19   Es werden ein paar (nicht sehr intelligente) Auswahlmöglichkeiten angeboten. Die Schleife wird verlassen, wenn der Benutzer eine 6 (für ende) eingibt:
#!/bin/sh
echo soll alles eventuell nicht formatiert werden\?
select name in ja nein "weiß nicht" "keine Hilfe!" "vielleicht" "ende"
do
    echo ausgewählt wurde $name
    if [ "$name" = ende ]
    then
        break
    fi
done
echo fertig
Ein Beispieldialog könnte so aussehen, wenn der Benutzer nacheinander die Werte 1, 4, und 6 eingibt:
soll alles eventuell nicht formatiert werden?
1) ja 3) weiß nicht 5) vielleicht
2) nein 4) keine Hilfe! 6) ende
#? 1
ausgewählt wurde ja
1) ja 3) weiß nicht 5) vielleicht
2) nein 4) keine Hilfe! 6) ende
#? 4
ausgewählt wurde keine Hilfe!
1) ja 3) weiß nicht 5) vielleicht
2) nein 4) keine Hilfe! 6) ende
#? 6
ausgewählt wurde ende
fertig

AnyWare@Wachtler.de