MrFlodder
25-11-2013, 21:20
Hallo liebe Gemeinde,
ich sitz da an etwas dran das mir jetzt schon zwei Tage Kopfzerbrechen bereitet: Ich versuche (und zum Teil gelingt das auch) mit dialog automatische Menüs mit automatischen Untermermenüs zu erzeugen.
Ziel des ganzen ist zum Schluss: Erzeugt man ein neues Verzeichnis erscheint der Verzeichnisname in der Dialogbox als Hauptmenüpunkt. Erzeugt man nun in einem der Verzeichnise des Hauptmenüs eine Datei so soll die zweite Zeile als Name für das Untermenü genutzt werden aber nicht die ersten beiden Zeichen da dies eine # und ein Leerzeichen ist.
Ich Zeig euch mal das Hauptmenü das funktioniert schon sehr gut und im Anschluss das Untermenü wo es Propleme gibt.
#!/bin/bash
export TERM=linux
## declaration ##
FA=`ls bin/ `
## function / logic ##
dialogbox()
{
tmp=`dialog --title "Box" --menu "Bitte Waehlen Sie eine Kategorie\n
\n " 20 70 9\
\`
for i in $FA
do
count=$(($count+1))
echo $i $count
done
\`\
3>&1 1>&2 2>&3`
}
## working section ##
dialogbox
BOX=`echo $tmp `
exec $tmp/untermenu.sh
soweit so gut. Wie ihr seht wird das Dialogmenu anhand der Verzeichnisnamen erzeugt.
Da ich natürlich nicht unendlich Verzeichnise erzeugen möchte, soll das Untermenu aus der zweiten Zeile jeder Datei in dem jeweiligen Verzeichnis erzeugt werden. Das sieht bisher so aus:
#!/bin/bash
set -x
## declaration ##
FA=`ls bin/BACKUP/*.{sh}`
## function / logic ##
dialogbox()
{
tmp=`dialog --title "dialog Menu" --menu "Please choose your command:" 16 60 9\
\`
count=0
for i in $FA
do
count=$(($count+1))
echo "[$count] \\\`cat "$i" | head -n 2 | tail -n 1 | awk '{print $2}'\\\`"
done
\`\
"99" "To exit" 3>&1 1>&2 2>&3`
}
## working section ##
dialogbox
digitchoice=echo $tmp
So auch das fuktioniert. Jedoch nur solange wie in der zweiten Zeile der jeweiligen Datei nur ein Wort steht. Stehen mehrere Worte mit leerzeichen getrennt erkennt es jedes wort als menü punkt und das bringt mich heut noch um :confused:
ich sitz da an etwas dran das mir jetzt schon zwei Tage Kopfzerbrechen bereitet: Ich versuche (und zum Teil gelingt das auch) mit dialog automatische Menüs mit automatischen Untermermenüs zu erzeugen.
Ziel des ganzen ist zum Schluss: Erzeugt man ein neues Verzeichnis erscheint der Verzeichnisname in der Dialogbox als Hauptmenüpunkt. Erzeugt man nun in einem der Verzeichnise des Hauptmenüs eine Datei so soll die zweite Zeile als Name für das Untermenü genutzt werden aber nicht die ersten beiden Zeichen da dies eine # und ein Leerzeichen ist.
Ich Zeig euch mal das Hauptmenü das funktioniert schon sehr gut und im Anschluss das Untermenü wo es Propleme gibt.
#!/bin/bash
export TERM=linux
## declaration ##
FA=`ls bin/ `
## function / logic ##
dialogbox()
{
tmp=`dialog --title "Box" --menu "Bitte Waehlen Sie eine Kategorie\n
\n " 20 70 9\
\`
for i in $FA
do
count=$(($count+1))
echo $i $count
done
\`\
3>&1 1>&2 2>&3`
}
## working section ##
dialogbox
BOX=`echo $tmp `
exec $tmp/untermenu.sh
soweit so gut. Wie ihr seht wird das Dialogmenu anhand der Verzeichnisnamen erzeugt.
Da ich natürlich nicht unendlich Verzeichnise erzeugen möchte, soll das Untermenu aus der zweiten Zeile jeder Datei in dem jeweiligen Verzeichnis erzeugt werden. Das sieht bisher so aus:
#!/bin/bash
set -x
## declaration ##
FA=`ls bin/BACKUP/*.{sh}`
## function / logic ##
dialogbox()
{
tmp=`dialog --title "dialog Menu" --menu "Please choose your command:" 16 60 9\
\`
count=0
for i in $FA
do
count=$(($count+1))
echo "[$count] \\\`cat "$i" | head -n 2 | tail -n 1 | awk '{print $2}'\\\`"
done
\`\
"99" "To exit" 3>&1 1>&2 2>&3`
}
## working section ##
dialogbox
digitchoice=echo $tmp
So auch das fuktioniert. Jedoch nur solange wie in der zweiten Zeile der jeweiligen Datei nur ein Wort steht. Stehen mehrere Worte mit leerzeichen getrennt erkennt es jedes wort als menü punkt und das bringt mich heut noch um :confused: