[linux-l] dialog-Rätsel - Nachschlag (verspätet)
Lutz Meinert
lutz.meinert at madvedge.de
Mi Okt 16 00:04:42 CEST 2002
Vielen Dank an Rolf Bünning, Steffen Detmer und Kendy Kutzner, die so
bravorös Licht in die dunklen Gefilde der Shell gebracht haben.
Die Array-Variante habe ich ausprobiert und funktioniert auch. Da ich
aber für jeden einzelenen Optionsparameter einen Array-Eintrag meiner
Funktion dynamisch als Parameter übergeben muss, gibts bei einer
längeren Auswahlliste eine ziemlich lange Schlange an
Funktionsparametern (pro Eintrag 6 Arrays!).
Deshalb fand ich den "script-on-fly"-Vorschlag von Kendy Kutzner am
praktikabelsten.
Dementsprechend habe ich die Funktion für eine dynamisch erzeugte
Radiobox umgebaut. Ein Programmbeispiel:
function GF_RadioBox ()
{
echo -en "dialog --title \"Corp\" --radiolist \"$(cat $gvMsgDir/$1)\" \
25 80 $(wc -l $gvMsgDir/$2 | sed -e s/[a-zA-Z].*// -e s/" "*//)" >
$$tmp.txt
cat $gvMsgDir/$2 >> $$tmp.txt
source $$tmp.txt
rm -f $$tmp.txt
}
# "$(cat $gvMsgDir/$1)\" gibt Menütext vom Text-File nonRootDir aus
#
# $(wc -l $gvMsgDir/$2 | sed -e s/[a-zA-Z].*// -e s/" "*//) erkennt
# automatisch, wie viele Zeilen = Auswahlmöglichkeiten im zweiten
# Text-File (menuRootDir) vorhanden sind. Die explizite Angabe eines
# Arguments kann somit entfallen.
#
# rm -f $$tmp.txt - Müll wird aufgeräumt.
Somit benötigt der Aufruf für diese Funktion nur zwei Argumente, egal
wie lang die Auswahlliste auch immer ist:
GF_RadioBox nonRootDir menuRootDir
Allerdings wird die Länge der Auswahlliste durch die Höhe des
dialog-Fensters bestimmt. Und jetzt wird's übel.
Weil das ein neues (dialog)-Thema ist, hab' ich ihm 'ne neue Mail
spendiert...
Lutz
Mehr Informationen über die Mailingliste linux-l