ksh script

M

mcphil

Grünschnabel
Hallo Zusammen,

wie kann ich in der ksh z.B. ein select menü zentriert stellen, also nicht das das manü linksbündig (standardmäsig) angzeigt wird??

Frage zwei :) wie kann ich dieses select menü in eine schleife setzen ohne das sie endlos wird, ich will die menüpunkte immer wieder anzeigen lassen es sei denn das menü wird beendet!
z.B.

1) blabla
2)blablalbla
3)exit
?blabla
Ausgabe soll folgen
danach soll das menü wieder angzeigt werden und nicht nur ein ? für die weitere eingabe ???

so und jetzt die dritte und letzte frage ich habe eine case anweisung mit drinne beim exit für ja und nein damit nochmal nachgefragt wird wie kann ich das einstellen das er mir bei nicht korrekte eingabe von ja oder nein wieder zurück springt und sag echo "Fehler in der Eingabe bitte erneut versuchen!
und nicht wie es jetzt ist bei einem fehler wieder auf das menü zurückspringt das zurückspringen soll also nur bei nein geschehen.

Danke schonmal für die Hilfe

mfg
 
hmpf

vielleicht hab ich mich zu undeutlich beschrieben?

Ich mach noch nicht all zu lange UNIX aber ich bin grad dabei ... ich habe natürlich auch schon gesucht bevor ich mich hier ins forum wende :).

Ich weiß blos nicht wie ich jetzt die umsetzung mache

select word in bla1 bla2 bla3 exit; do
if [ "$word" = "exit" ]; then
print "Wollen sie das ... verlassen (j/n)?"
read JA
case $JA in
j*|J*) break;;
n*|N*) print "Zurueck zum Menue";; <--- hier soll er wieder das Menü anzeigen also das select er zeigt bei select allerding nicht das menü an bei zurückgabe sondern ein ? <-- und wartet auf eine eingabe der nummer z.B. 1,2,3,4 etc.
*) print "Fehler in der Eingabe";; <--- hier soll er wieder auf die auswahl gehn: Wollen sie das ... verlassen

esac
fi

if [ "$word" = "bla1 ] -->> anweisunge usw. mit dem script als verschiedene if anweisungen .............
done

So ich hoffe ich habe mein Problem jetzt wieder besser erklärt
könnte ich das mit dem select so realisieren das ich ein ENTER simuliere weil select springt ja bei eingabe eines leerfelds (also enter) wieder auf das menü zurück das wäre doch der einfachste und syntax schlechteste weg oder ? :)

mfg phil
 
Ich denke eher, dass hier niemand mit der ksh arbeitet.
 
Ein Menue konnte so aussehen:

Code:
#!/usr/bin/ksh

kaufen(){
        print "ok ich kaufe was"
        read x?"Noch mal Y/n? "
        [[ $x == "n" ]] && exit
}

verkaufen(){
        print "ok ich verkaufe was"
        read x?"Noch mal Y/n? "
        [[ $x == "n" ]] && exit
}

error(){
        print "Falsche Eingabe!"
        read x?"Noch mal Y/n? "
        [[ $x == "n" ]] && exit
}

while [[ $answer != 3 ]]
do
        clear

        print "Menue"
        print "          1) Kaufen"
        print "          2) Verkaufen"
        print "          3) Exit"

        read answer?"Eingabe: "

        case $answer in
           1 )  kaufen    ;;
           2 )  verkaufen ;;
           3 )  print "Auf wiedersehen" ;;
           * )  error ;;
        esac
done
 

Ähnliche Themen

[HowTo] NVidia und 3D unter SuSE/openSUSE

Zurück
Oben