[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: einfaches Textmenü



Hallo Frank et al,

On Thu, Mar 06, 2003 at 01:33:32AM +0100, Frank Dietrich wrote:
> Martin Samesch wrote:
> 
> > On Wed, Mar 05, 2003 at 09:10:29AM +0100, J. Volkmann wrote:
> > > Frank Dietrich (bits_n_bytes@gmx.de) schrieb:
[...]
> > > http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Bash-Prog-Intro-HOWTO.html#ss9.1
> > > Sind nur ein paar Zeilen und sieht ganz nett aus. Und im Gegensatz
> > > zu dialog braucht man kein extra package :-)
[...]
> > Mit
> >   OPTION1="Das ist der erste Menüeintrag"
> > ...
> >   OPTIONS="$OPTION1 $OPTION2 $OPTION3"
> >   [weiter wie im Beispiel]
> > 
> > bekomme ich
> > 1) Das        5) Menüeintrag      9) der
> > 2) ist        6) Der             10) Dritte 
> > 3) der        7) Zweite
> > 4) erste      8) Und
> > Eigentlich klar, aber geht das auch wie beabsichtigt?
> 
> Da kann ich Dir schon die Lösung bringen.
> 
> Das Zusammenfassen in der Variable OPTIONS geht so nicht. Mit
> 
>   ...
>   select opt in "$OPTION1" "$OPTION2" "$OPTION3"; do
>   ...

Vielen Dank.

Das funktioniert jetzt wie gewünscht.

Das Script macht jetzt allerdings nicht mehr das, was es soll.

Es soll ein neues Benutzeverzeichnis angelegt werden und der Benutzer
in eine Datenbank eingetragen werden. $OPTION2 ist für den Fall, dass
das Script ein zweites Mal aufgerufen werden musste, weil es, z.B.
wegen eines falschen DB-Passworts, keinen neuen DB-Eintrag gab.

--- ar-useradd.sh ---
[...]
while [ -e $AR_HOME/$NEW_USERDIR ]; do
  echo "Das Verzeichnis $NEW_USERDIR konnte nicht angelegt werden."
  echo "Grund: $NEW_USERDIR ist schon vergeben."
  echo ""

  OPTION1="Uuups, dann möchte ich ein anderes Verzeichnis anlegen."
  OPTION2="Klar, das habe ich ja vorhin angelegt."
  OPTION3="Na dann eben nicht (Abbrechen)."

  select opt in "$OPTION1" "$OPTION2" "$OPTION3"; do
    if [ "$opt" = "$OPTION1" ]; then
      echo
      echo -n "Neues Benutzerverzeichnis: "
      read NEW_USERDIR
      break
    elif [ "$opt" = "$OPTION2" ]; then
      break
    elif [ "$opt" = "$OPTION3" ]; then
      echo "Bye."
      exit 0
    else
      echo "Bitte nur 1, 2 oder 3 eingeben."
      exit 0
    fi
  done
done
[...]     
--- ar-useradd.sh ---

Bei $OPTION2 wird die while-Schleife nicht verlassen sondern wieder
das Menü angezeigt. Ich vermute, dass das break schon von select
"verbraucht" wird. Ein zweites break nützt aber auch nichts.

Vielen Dank für Hinweise.

Gruß,
Martin



Reply to: