Bash Programmierung

Maerel

Maerel

Zensiert
hi,

ich versuche mich gerade in der Bash Programmierung und überlege gerade,
wie ich folgendes lösen kann.

Ich habe mir ein kleines Menü gebaut und
möchte, dass man nur zwischen 1-7 wählen kann.
Wenn man jetzt also eine eingabe macht,
wie z.b 8 oder 0, sollte eine
Fehlermeldung ausgegeben werden, wie "nur zwischen 1-7 wählen"

Ich dachte an eine while Schlife
ala:

Code:
while
echo "Wählen Sie zwischen 1-7"
read wahl
[ $wahl <= 0 -a $wahl >=8 ]
do
echo "Nur zwischen 1-7 wählen"
done

Mir ist klar,
dass diese Zeile
[ $wahl <= 0 -a $wahl >=8 ]
falsch ist, aber ich finde irgendwie nicht die
richtigen befehle dafür *heul*
 
hab leider keine passende Antwort für dein Problem aber ich hab mir vor kurzem ein Buch gekauft was dir weiterhelfen kann. Ich hab noch keine Zeit es zu lesen. Auf terrashop.de bekommst du "Linux Scripting" für 12,95 €. Wenn du öfter mit der Shell programmieren willst ist das Buch genau richtig für dich.;)
 
thx, schau ich mir mal an....
man in C kann man die funktion so leicht
programmieren ;)
 
hmm,

jupp Shell hat irgendwie ein seltsame Syntax.
 
hm,.. naja, ich könnte eigentlich das menü
in c programmieren und dann bei bedarf,
das bash script aufrufen lassen, .. wäre eigentlich einfacher.
 
hmm,

oder mit case ?


Code:
case "$wahl" in

       1)      echo "Ausführung Punkt 1";;

       2)      echo "Ausführung Punkt 2";;

       *)      echo "Falsche Eingabe";;

esac
 
thx, dass ist schon mal eine gute möglichkeit,
gibts eigentlich noch sowas wie eine goto
anweisung in der bash?

EDIT:
Hab die goto Anweisung mit einer
while do schleife ersetzt. :D
 
Zuletzt bearbeitet:
Nein ein "goto" gibt es in der Shell nicht, braucht man aber auch nicht.
Mit "goto" entsteht ein unuebersichtlicher und schlecht lesbarer Code.
 
> hm,.. naja, ich könnte eigentlich das menü
in c programmieren und dann bei bedarf,
das bash script aufrufen lassen

man koennte auch mit Kanonen auf Spatzen schissen :D

Wenn du schoene Dialogboxen willst kannst du dir mal "dialog" ansehen.


Die Test Abfrage fuer Zahlen zwischen 1-7
[ $x -gt 0 -a $x -lt 8 ]
Natuerlich ist die Case Abfage die bessere Wahl
PHP:
#!/bin/bash

while true
do
        read wahl
        case "$wahl" in

        1)      echo "Ausführung Punkt 1"; break ;;

        2)      echo "Ausführung Punkt 2"; break ;;

        *)      echo "Falsche Eingabe, bitte noch einmal";;

        esac
done

echo "Naechster Befehl"

Gruss Rupert
 

Ähnliche Themen

script sshpass

Grafische Anzeige der Temperatur

Keine grafische Oberfläche (Debian Installation)

Summe von Zahlen in einer Zeilen bilden

Telefoninterview (Wie sich auf Bash-Shell-Fragen vorbereiten?)

Zurück
Oben