Bash Programmierung

Maerel

Zensiert
Beiträge
180
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*
 

g_eXx

gentoo-user
Beiträge
182
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.;)
 

Maerel

Zensiert
Beiträge
180
thx, schau ich mir mal an....
man in C kann man die funktion so leicht
programmieren ;)
 

Maerel

Zensiert
Beiträge
180
hm,.. naja, ich könnte eigentlich das menü
in c programmieren und dann bei bedarf,
das bash script aufrufen lassen, .. wäre eigentlich einfacher.
 

JoelH

I love Ruby
Beiträge
653
hmm,

oder mit case ?


Code:
case "$wahl" in

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

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

       *)      echo "Falsche Eingabe";;

esac
 

Maerel

Zensiert
Beiträge
180
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:

rup

Haudegen
Beiträge
627
Nein ein "goto" gibt es in der Shell nicht, braucht man aber auch nicht.
Mit "goto" entsteht ein unuebersichtlicher und schlecht lesbarer Code.
 

rup

Haudegen
Beiträge
627
> 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?)

Sucheingaben

Bash Programmieren

Oben