Page 1 of 1

Kurze Frage an Bashprogrammierer [gelöst]

Posted: Mon 28 Jan 2013, 18:47
by der-schutzhund
Hallo zusammen,

am Ende eines Bashscript steht folgender Code.
Kann mir jemand sagen warum sich das Dialogfenster nicht schließt, wenn ich die "Speichern"-Taste drücke?
Bei Taste "OK" und "cancel" schließt sich der Dialog ganz normal!

Code: Select all

  export MAIN_DIALOG='
  <window title="Oberfläche geändert..">
  <vbox>
  <text><label>Achtung! Geänderte Oberfläche jetzt speichern?</label></text>
  <hbox>
   <button>
   <label>Speichern</label>
   <action>cp /usr/local/variomen/data/iconsetup_TEMP '$1' &</action>
   </button>
   <button ok></button>
   <button cancel></button>
  </hbox>
 </vbox>
 </window>'

if [ "$vorlang" != "$templang" ] 
then
 gtkdialog --program=MAIN_DIALOG
 unset MAIN_DIALOG
fi

exit 0

Posted: Mon 28 Jan 2013, 19:44
by rhadon
Hallo Wolfgang,

Ich weiss nicht, ob das überhaupt möglich ist, OK- und Cancel sind halt speziell. Ich würde eine Checkbox nehmen.
Z.B.

Code: Select all

<checkbox> 
	<variable>CHECKBOX</variable> 
	<label>"Speichern"</label> 
	<action>cp ...</action>
</checkbox> 	  
evtl. ist noch was mit deinem cp-Befehl faul, kann ich aber nicht testen. Am Besten von einer Konsole aus aufrufen.

Das Ganze würde dann aussehen wie im Bild unten.

Was mir noch auffällt,

Code: Select all

gtkdialog --program=MAIN_DIALOG 
muss (soweit ich weiss) direkt unterhalb von
</window>'
stehen.

Hoffe, das hilft etwas :wink: ,

Rolf

Posted: Mon 28 Jan 2013, 20:00
by der-schutzhund
Hallo Rolf,

schnelle Antwort :D
Ich weiss nicht, ob das überhaupt möglich ist, OK- und Cancel sind halt speziell. Ich würde eine Checkbox nehmen.
Das wäre eine Möglichkeit!
Habe es auch schon mit dem OK-Button probiert - keine Änderung!
evtl. ist noch was mit deinem cp-Befehl faul, kann ich aber nicht testen. Am Besten von einer Konsole aus aufrufen.
Die Zeile funktioniert im Terminal, halt mit richtigem Zielverzeichnis+dateinamen!

Habe auch schon mal mit einem zweiten Befehl nach der Kopierzeile probiert also z.B. "xterm".
Nach dem kopieren wird dann wie erwartet das Terminal gestartet.
Dann an Stelle von xterm halt mal "close" oder "exit".
Es muss doch einen Befehl geben der den Dialog beendet.
muss (soweit ich weiss) direkt unterhalb von
</window>'
stehen.
Das kann ich mal testen!

LG

Wolfgang

Posted: Mon 28 Jan 2013, 20:35
by rhadon
der-schutzhund wrote:Es muss doch einen Befehl geben der den Dialog beendet.
Hast Recht, es geht. Ich weiss halt auch nicht alles :oops:

Code: Select all

<action>EXIT:sure</action>
:wink:

Rolf

Posted: Mon 28 Jan 2013, 20:44
by der-schutzhund
Hallo Rolf,

mit einer zusätzlichen Zeile (von SFR) geht es wie gewünscht:

Code: Select all

  
   <label>speichern</label>
   <action>cp /usr/local/variomen/data/iconsetup_TEMP '$1' &</action>
   <action type="exit">speichern_pressed</action>
Vielleicht kannst du mir sagen, wie ich den Speicherbutton links bündig bekomme?

LG

Wolfgang

Posted: Mon 28 Jan 2013, 21:48
by rhadon
Einen direkten Befehl dazu kenne ich nicht. Das Einfachste wäre wohl

Code: Select all

<hbox homogeneous="true"> 
dann werden die Buttons darin gleichmässig verteilt.

Rolf