PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash Programmierung



Maerel
15.02.2003, 23:12
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:


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
16.02.2003, 12:33
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
16.02.2003, 12:55
thx, schau ich mir mal an....
man in C kann man die funktion so leicht
programmieren ;)

JoelH
16.02.2003, 14:56
jupp Shell hat irgendwie ein seltsame Syntax.

Maerel
16.02.2003, 15:00
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
16.02.2003, 16:53
oder mit case ?




case "$wahl" in

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

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

*) echo "Falsche Eingabe";;

esac

Maerel
16.02.2003, 18:10
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

rup
16.02.2003, 19:19
Nein ein "goto" gibt es in der Shell nicht, braucht man aber auch nicht.
Mit "goto" entsteht ein unuebersichtlicher und schlecht lesbarer Code.

rup
16.02.2003, 19:43
> 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


#!/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

ConCode
19.02.2003, 14:12
Falls noch jemand infos brauch kann man auch dieses EBook konsultieren. (downloaden kann man es auch )

http://hackz.dzafez.de/Linux%20Shell%20Scripting%20Tutorial.pdf