hilfe bei read

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
monox
Beiträge: 16
Registriert: 31.10.2006 23:52:55

hilfe bei read

Beitrag von monox » 05.11.2006 16:30:08

halloo

ich habe gerade in einem script ein menu kreiert mit vielen echos. daraus kann der user dann einen buchstaben auswählen.
wie kann ich ihm nun mittteilen, dass er - falls er mal aus versehen eine zahl eintippt - doch bitte einen buchstaben eintippen soll.

Hier sind Ausschnitte aus dem Code:

Code: Alles auswählen


read Eingabe

if [ "$Eingabe" = "a" ]
 then 
echo du hast a ausgewählt."
elif
.....
Man müsste also wie in dieser if Bedingung bzw. elif Bedingung sagen, dass wenn kein Buchstabe kommt, das Scritp bitte ausdrücken soll - echo "Bitte gib einen Buchstaben ein - und keine Zahl."

Kann mir jemand helfen?

ps: und wie gesagt, else hab ich schon benutzt. Dann motzt das Script einfach generell, man solle im Menu doch bitte einen der zur Verfügung stehenden Auswahlpunkte nehmen. Aber das Script kann noch nicht entscheiden, ob man Buchstaben oder eine Zahl eingetippt hat.

mfg

monox

BermudaHonk
Beiträge: 184
Registriert: 21.09.2005 10:43:37
Wohnort: Dresden

Beitrag von BermudaHonk » 05.11.2006 17:30:04

Tach,
spontan fällt mir folgendes ein:

Code: Alles auswählen

if ! ( echo $Eingabe |grep "[a-Z]" > /dev/null )
then echo "Bitte gib einen Buchstaben ein - und keine Zahl."
else <...>
fi
Auf else kann man hier auch verzichten, man beendet hier die if-Anweisung und beginnt mit dem weiteren Kram. Mit der Bash lässt sich so ziemlich alles bewerkstelligen, da solltest Du mal _meine_ Skripte sehen :) !

Gruß BermudaHonk
The only Microsoft product ever to ship that doesn't suck will probably be a vacuum cleaner!

monox
Beiträge: 16
Registriert: 31.10.2006 23:52:55

danke

Beitrag von monox » 06.11.2006 05:44:59

vielen dank für die hilfe. es hat was genützt.

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 06.11.2006 08:50:56

Hi,

eine weitere alternative waere:

Code: Alles auswählen

    case "$Eingabe" in
      [aA]) echo "aaaaaaaaa";;
      [bB]) echo "B war's";;
         *) echo "Dieses Zeichen hat keine Funktion";;
    esac
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Antworten