R
Roomer
Jungspund
Hallo
Ich wollte mir einen Menu Generator basteln der mittels Schleife einen Batzen Variablen einliest (Fensterhoehe/breite/text....auzufuehrender Befehl...)
Die Schleife soll mir dann einen String bauen der alle noetigen Dialog-Anweisungen + Parameter enthaelt. Soweit sogut. Jetzt das Problem:
ich will nicht den fertigen quellcode samt Dialoganweisungen zusammenbauen und ihn dann in eine temp datei schreiben die dann ausgefuehrt wird.
defacto:
$MENU_VAR2 enthaelt sowas wie:
"1" "Menuepunkt1"
"2" "Menuepunkt2"
das Menu wird auch richtig dargestellt, alles funzt
aber jetzt wirds kribbelitsch
MENU_CMD enthaelt sowas wie:
1) echo TEST; sleep 3;;
...das wird nicht ausgefuehrt, er setzt den Inhalt der Variable scheinbar ein (oben gehts ja auch), aber interpretiert die befehle nicht ! Fehlermeldung: unexpected token near newline.
Der String der in MENU_CMD steckt ist auch ok, syntaktisch alles supi
ich habe es auch noch mit IF probiert.
So dass jetzt anstelle der case anweisung folgendes steht
Aber, verflucht noch eins, das geht auch nicht. Jetzt gibts die Meldung: if - command not found. Habs schon mit allem moeglich Arten des Quoting probiert.
Wenn ich diese Befehlszeile direkt eintrage funktioniert es.
Bin momentan zimlich ratlos. Ich verstehe nicht warum es beim Bilden des Menus funktioniert, aber beim Auswerten der Eingabe nicht mehr...
Ich habe mal das script angehangen.
Vielleicht hat ja jemand schonmal sowas versucht, oder kann mir sagen warum es nicht so geht. Jeder Tipp ist willkommen.
(ausser Tipps der Form: schreib doch alles in ne datei und fuehr die dann aus )
MfG
Roomer
Ich wollte mir einen Menu Generator basteln der mittels Schleife einen Batzen Variablen einliest (Fensterhoehe/breite/text....auzufuehrender Befehl...)
Die Schleife soll mir dann einen String bauen der alle noetigen Dialog-Anweisungen + Parameter enthaelt. Soweit sogut. Jetzt das Problem:
ich will nicht den fertigen quellcode samt Dialoganweisungen zusammenbauen und ihn dann in eine temp datei schreiben die dann ausgefuehrt wird.
defacto:
Code:
$DIALOG --clear --menu "$INFO_MESSAGE1" "$MENU_WINDOW_Y" \
"$MENU_WINDOW_X" "$MENU_WINDOW_ENTRIES" \
$(echo $MENU_VAR2) 2> "$TEMP_FILENAME"
$MENU_VAR2 enthaelt sowas wie:
"1" "Menuepunkt1"
"2" "Menuepunkt2"
das Menu wird auch richtig dargestellt, alles funzt
aber jetzt wirds kribbelitsch
Code:
eingabe=$(cat "$TEMP_FILENAME")
case $eingabe in
$(echo $MENU_CMD)
esac
MENU_CMD enthaelt sowas wie:
1) echo TEST; sleep 3;;
...das wird nicht ausgefuehrt, er setzt den Inhalt der Variable scheinbar ein (oben gehts ja auch), aber interpretiert die befehle nicht ! Fehlermeldung: unexpected token near newline.
Der String der in MENU_CMD steckt ist auch ok, syntaktisch alles supi
ich habe es auch noch mit IF probiert.
So dass jetzt anstelle der case anweisung folgendes steht
Code:
if [ $eingabe -eq 1 ]; then echo test; sleep 3; fi
if [ $eingabe -eq 2 ]; then echo test2; sleep 3; fi
Aber, verflucht noch eins, das geht auch nicht. Jetzt gibts die Meldung: if - command not found. Habs schon mit allem moeglich Arten des Quoting probiert.
Wenn ich diese Befehlszeile direkt eintrage funktioniert es.
Bin momentan zimlich ratlos. Ich verstehe nicht warum es beim Bilden des Menus funktioniert, aber beim Auswerten der Eingabe nicht mehr...
Ich habe mal das script angehangen.
Vielleicht hat ja jemand schonmal sowas versucht, oder kann mir sagen warum es nicht so geht. Jeder Tipp ist willkommen.
(ausser Tipps der Form: schreib doch alles in ne datei und fuehr die dann aus )
MfG
Roomer
Anhänge
Zuletzt bearbeitet: