ubuntuusers.de

dialog --checklist

Status: Ungelöst | Ubuntu-Version: Ubuntu
Antworten |

sabsirro

Avatar von sabsirro

Anmeldungsdatum:
20. Februar 2006

Beiträge: 442

Wohnort: Home@Leipzig.de

Hallo alle zusammen,

wie kann ich mit dem Programm dialog in der konsole bei dem Fenster --checkbox weiter menüpunkte anfügen die dann zur Auswahl stehen sollen.
Bis jetz habe ich nur eine Zeile die folgendermaßen aussieht:

dialog --checkbox Text 50 50 20 Auswahl Beschreibung Status 

MfG Sab.

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4687

Wohnort: Berlin

Ich nehme mal an, Du meinst die Option --checklist. Einfach weitere Auswahl-, Beschreibung- und Status-Angaben hinten dran hängen.

sabsirro

(Themenstarter)
Avatar von sabsirro

Anmeldungsdatum:
20. Februar 2006

Beiträge: 442

Wohnort: Home@Leipzig.de

Oh... 😳 ja ..checklist...meine ich natürlich...ja das funktioniert, dankeschön.

MfG Sab

sabsirro

(Themenstarter)
Avatar von sabsirro

Anmeldungsdatum:
20. Februar 2006

Beiträge: 442

Wohnort: Home@Leipzig.de

Jetzt würd ich natürlich auch die in Dialog ausgewählten Punkte zur Weiterverarbeitung weitergeben.

bei zenity lief das folgendermaßen...danke nochmal an Klaus1977....habe auch schon ein bisschen damit rumexperimentiert aber bei Dialog bringt mich das nicht weiter...

#!/bin/bash

RETVAL=$(zenity \
        --list \
        --width=400 \
        --height=300 \
        --checklist \
        --column "Auswahl" \
        --column "Aufgabe" \
                TRUE "update" \
                FALSE "upgrade" \
                TRUE "echo blubb")

OIFS=$IFS
IFS="|"
for TASK in $RETVAL
do

case "$TASK" in
     update)
            /usr/bin/gksudo /usr/bin/apt-get update
           
                 
            ;;
       upgrade)
            /usr/bin/gksudo /usr/bin/apt-get upgrade
            ;;
     *)
             echo "$TASK"   
             #wenn kein update oder upgrade eingegeben ist
                 
             ;;
esac


 #       eval "$TASK"
done
IFS=$OIFS

kann mir vielleicht jemand helfen?

MfG Sab.

TheEnvoy

Avatar von TheEnvoy

Anmeldungsdatum:
16. Juni 2006

Beiträge: 25

Wohnort: Berlin

Dialog schreibt die Antwort in die Standardfehlerausgabe. Du musst diese halt entsprechend umlenken
um die Antwort weiterzuverarbeiten. Bei einfachen Abfragen kannst du auch über den Exitstatus gehen.
Ein guter Anfang war für mich http://www.bin-bash.de/artikel.php?id=1076580085.

Hoffe das hilft dir weiter...
gruß
TheEnvoy

sabsirro

(Themenstarter)
Avatar von sabsirro

Anmeldungsdatum:
20. Februar 2006

Beiträge: 442

Wohnort: Home@Leipzig.de

Hm...ich glaube nicht so richtig...denn dass ich meine Ausgaben umleiten kann weiss ich schon ...ich habe diese jetz mal in ein File geschrieben das ganze schaut dann so aus:

--dialog --backtitle text --title text --checklist text 20 20 20 Auswahl Beschreibung Status Auswal2 Beschreibung2 Status2 2> ~/test

jetz steht meine Auswahl in dem File test und Zwar folgendermaßen, wenn ich beide Menüpunkte ausgewählt habe.

"Auswahl" "Auswahl2"

nur jetzt wie weiter...das ist mein Problem ❓

MfG Sab.

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4687

Wohnort: Berlin

Jetzt musst Du Dich mit Schleifen und case Abfragen vertraut machen:

#!/usr/bin/bash
RESULTS=$(dialog --stdout --backtitle text --title text \
                 --checklist text 0 0 0 \
                 Auswahl Beschreibung Status \
                 Auswahl2 Beschreibung2 Status2)

for RESULT in $RESULTS
do
    case $RESULT in
        '"Auswahl"' )
            echo foo
            ;;
        '"Auswahl2"' )
            echo bar
            ;;
    esac
done

sabsirro

(Themenstarter)
Avatar von sabsirro

Anmeldungsdatum:
20. Februar 2006

Beiträge: 442

Wohnort: Home@Leipzig.de

Dankeschön...ich hatte es schon ähnlich aufgesetzt gehabt. Dabei habe ich mich an dem oben genannten Bsp orientiert...war jedoch nicht ganz richtig...naja jetz ist alles bestens
es funktioniert. 😉

MfG Sab

sabsirro

(Themenstarter)
Avatar von sabsirro

Anmeldungsdatum:
20. Februar 2006

Beiträge: 442

Wohnort: Home@Leipzig.de

So weit so gut funktioniert schon alles wunderbar, dass ganze sieht dann so aus wie im Codefenster unten. Jezt würde ich gerne gerade zum Beispiel bei dem Menüpunkt "Wm-Auswahl" ein untermenü anlegen in welchem dann der Windowmanager ausgewählt werden kann oder eben ein eigenes Skript aufrufen welches ebenfalls bestückt mir dialog eine Radiolist zur Auswal stellt. Ich habe schon versucht das irgendwie mit in dieses Konstrukt einzubetten mit --and-widget was aber wie in diesem Falle mit einer Radiolist nicht zu funktionieren zu scheint. Meine 2. Idee war es einfach in ein eigenes Skript zu schreiben welches dann bei der Auswahl des Menüpunktes "Wm-Anpassung" die Radiolist anzeigt. Mein Problem ist da dass die Radiolist auch ganz gut funktioniert wenn ich sie in der Konsole direkt ausführe, wenn ich sie aber in dem unteren Skript als menüpunkt anwähle wird diese nicht ausgeführt. Woran kann das liegen...hat jemand Lösungsvorschläge?..Wäre für jede Hilfe sehr dankbar.
MfG Sab.

#!/bin/bash

#Installation von dialog

#sudo aptitude intall dialog

RESULTS=$(dialog --stdout --backtitle Ubuntunator --title Menu \
		 --checklist "Wählen sie die gewünschten Aufgaben." 15 70 9 \
		 "Quellanpassung" "Hiermit werden alle Quellen freigeschaltet." off \
		 "Grundsystem" "Einrichten für X" off \
		 "Wm-Auswahl" "Wählen sie ihren bevorzugten Windowmanager" off \
		 "Einstellungssicherung" "Sichern von Programmeinstellungen." off \
		 "Einstellungswiederherstellung" "Wiederherstellen von Programmeinstellungen." off \
		 "Packprogramme" "Installation aller Pack-Formate" off \
		 "Medienfähigkeit" "Stellt die Medienfähigkeit her (mp3 und co.)" off )


for RESULT in $RESULTS
do
	case $RESULT in 
		'"Quellanpassung"' )
		        sh ~/Ubuntunator/Quellanpassung/quellanpassung 	
			;;
		'"Grundsystem"' )
			sh ~/Ubuntunator/Grundsystem/grundsystem
			;;
		'"WM-Auswahl"' )
			sh ~/Ubuntunator/Windowmanager/windowmanager
			;;
		'"Einstellungssicherung"' )
			sh ~/Ubuntunator/Sicherungsverwaltung/Einstellungssicherung
			;;
		'"Einstellungswiederherstellung"' )
			sh ~/Ubuntunator/Sicherungsverwaltung/Einstellungswiederherstellung
			;;
		'"Packprogramme"' )
			sh ~/Ubuntunator/Packprogramme/packprogramme
			;;
		'"Medienfähigkeit"' )
			sh ~/Ubuntunator/Medienfähigkeit/medienfähigkeit
			;;		

	esac
done
Antworten |