gtkdialog und bash

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

gtkdialog und bash

Beitrag von debdog » 23.12.2007 17:17:07

Hallo Alle,

gibt es hier im Forum einen verständigen gtkdialog-Benutzer welcher die Zeit findet mich bei meinen ersten Gehversuchen zu unterstützen oder mir den Weg zu einer 'absolute beginner'-Anleitung oder zu einem gtkdialog-(Unter-)Forum weisen kann?

Ich kann nicht Programmieren aber schreibe mir gerne mal ein kleines bash-Script. Leider stoße ich mit xdialog an die Grenzen weshalb ich mich jetzt in gtkdialog einarbeiten möchte. Vielleicht habe ich als Nicht-Programmierer eine signifikante Bildungslücke welche mir den Weg zur Lösung meines ersten Problemes versperrt.

Folgendes (funktionierendes) Script soll erweitert werden:

Code: Alles auswählen

#!/bin/bash

export MAIN_DIALOG='
   <vbox>
     <hbox>
       <checkbox sensitiv="true" draw_indicator="false">
         <label>Laden</label>
         <variable>VAR_MODUL_LADEN</variable>
         <action>echo $VAR_MODUL_LADEN</action>
       </checkbox>
     </hbox>
   </vbox>
'

gtkdialog --program=MAIN_DIALOG
Jetzt soll die checkbox je nach Umgebung, also ob das Modul schon geladen ist oder nicht, sensitiv="true" oder sensitive="false" sein. Ich habe versucht dies mittels einer Variablen zu lösen, z.B.:

Code: Alles auswählen

export VAR_SENS=true
export MAIN_DIALOG='
...
      <checkbox sensitiv=$VAR_SENS draw_indicator="false">
...
Leider sind alle Versuche fehlgeschlagen und jetzt frage ich mich, ob es überhaupt möglich ist irgendwie Variablen in die Befehle innerhalb der '< >'-Klammern miteinzubauen. Und wenn das nicht geht, wie man sowas dann realisiert?!?

Ich bin für jeden auch noch so kleinen Tipp sehr dankbar :-D

schöne 'Tage' wünschend
debdog
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

Benutzeravatar
Stratovarius
Beiträge: 297
Registriert: 07.04.2004 13:00:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 53° 27' 20,31'' N 9° 57' 29,31'' E
Kontaktdaten:

Beitrag von Stratovarius » 23.12.2007 17:34:49

Schau mal hier vorbei: http://kanotix.com/PNphpBB2-viewtopic-t-23484.html

Gruß
Strato

Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

Beitrag von debdog » 23.12.2007 17:44:29

Hi Stratovarius,

da war ich schon, hab aber keinen Hinweis zur Lösung des Problems gefunden (kdedialog ist keine Lösung für mich).

Hab ich was übersehen?

Danke, auf jeden Fall!
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

Benutzeravatar
Stratovarius
Beiträge: 297
Registriert: 07.04.2004 13:00:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 53° 27' 20,31'' N 9° 57' 29,31'' E
Kontaktdaten:

Beitrag von Stratovarius » 23.12.2007 18:22:03

Ich meine den zweiten Post (http://kanotix.com/index.php?name=PNphp ... 677#151677), wegen dem Link und dem was er da schreibt, und dem viertem Post (http://kanotix.com/index.php?name=PNphp ... 705#151705), wegen deiner Frage zu den Variablen.
Da ich selber keine Ahnung von gtkdialog habe, kann ich nicht sagen ob es wirklich hilfreich ist - sah für mich aber so aus ;)

Ich arbeite mich meist ganz gerne durch examples (siehe erster Link), da wird oft eine Menge bei klar, auch wenn man nicht unbedingt versteht was wirklich im Hintergrund passiert.
Aber muss ich alles wissen wenn es funktioniert ? 8)

Wie ich neuen Usern immer sage:
Versuche nicht alles zu verstehen und zu hinterfragen, denn in der ersten Klasse hast du dem Lehrer auch ohne Vorbehalt geglaubt das 1 + 1 = 2 ist ;)
(Na ehrlich gesagt rette ich mich damit vor stundenlangen Diskussionen was, wie und wieso etwas geht oder nicht ;) )

Gruß
Strato

Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

Beitrag von debdog » 23.12.2007 19:10:41

Stratovarius hat geschrieben: (Na ehrlich gesagt rette ich mich damit vor stundenlangen Diskussionen was, wie und wieso etwas geht oder nicht ;) )
hehe

Mein bisheriges Wissen habe ich hauptsächlich aus den Beispielen in /usr/share/doc/gtkdialog, leider kommt der Fall wie ich ihn mir vorstelle nirgends vor. Auch der Thread im kanotix-forum und seine Links behandeln dies nicht - es werden immer nur Variablen zwischen <>-Klammerpaaren ( <befehl> laber variable </befehl> ) und nicht innerhalb der Klammern <befehl option=variable> laber </befehl> behandelt.

Ich habe nicht viel zu diesem Thema gefunden, aber in allen Beispiele die ich gefunden habe kommt soetwas nicht vor, weshalb ich mittlerweile glaube, daß dies nicht möglich ist und daß es einen anderen Weg geben muß die Eigenschaften von Objekten zur Laufzeit zu verändern.

Trotzdem nochmals vielen Dank für Deine Mühen

debdog
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

Beitrag von debdog » 24.12.2007 17:08:47

okokok, ich habs doch übersehen :-D

Ich bin gestern wohl etwas auf der Leitung gestanden. Stratos Satz über das Verstehen und Hinterfragen hat mich dann aber doch zur Lösung geführt.
Nach dem ich mir klar gemacht hatte wie das Script von gtkdialog abgearbeitet wird viel es mir wie Schuppen von den Haaren:

Code: Alles auswählen

export VAR_MODUL_CHKB='false'
export MAIN_DIALOG='
   <vbox>
     <hbox>
       <checkbox sensitive="'$VAR_MODUL_CHKB'" draw_indicator="false">
         <label>Laden</label>
	 <variable>VAR_MODUL_LADEN</variable>
	 <action>echo $VAR_MODUL_CHKB $VAR_MODUL_LADEN</action>
       </checkbox>
     </hbox>
   </vbox>
'
gtkdialog --program=MAIN_DIALOG
Das Problem ist noch nicht ganz gelöst, da eine Änderung der Variable zur Laufzeit nicht umgesetzt wird. Dabei hilft mir hoffentlich gtkdialog -e. Aber dazu nach den Feierlichkeiten.

Schöne Tage Allen
debdog
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

Antworten