dialog/ Xdialog

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
tuxfreund
Beiträge: 58
Registriert: 01.12.2009 19:19:46

dialog/ Xdialog

Beitrag von tuxfreund » 15.11.2010 19:11:33

Hei,

hier ist mein Script:

Code: Alles auswählen

#!/bin/sh
Xdialog --msgbox "Hallo" 0 0
Hoffentlich beschreibe ich mein Vorhaben nicht zu umständlich. Ich möchte, das das Script selber prüft, ob ein Xserver läuft. Wenn nein, dann soll als Pendant dialog benutzt werden. Doch wie prüfe ich das jetzt? Wechsel ich vom Desktop auf die echte Konsole, dann läuft ja der Xserver weiter, aber er schreibt nicht auf dieses Display. Deshalb muss, von dort aus aufgerufen, richtigerweise dialog benutzt werden. Also muss eigentlich geprüft werden, ob auf dem Ort, von welchem das Script getartet wird, das aktive Xdisplay sitzt.

Wer kann helfen?

dawg
Beiträge: 441
Registriert: 29.12.2008 19:59:00

Re: dialog/ Xdialog

Beitrag von dawg » 15.11.2010 19:39:34

Versuch mal das:

Code: Alles auswählen

if [[ $DISPLAY ]] ; then echo "X running here " ; fi
von F7/X-server sollte es eine Ausgabe von "echo" geben, von, zB, F1 nicht.

Ich bin vor Kurzem darüber gestolpert, versprechen kann ich nichts.

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

Re: dialog/ Xdialog

Beitrag von debdog » 15.11.2010 20:30:14

Mein Tipp: verwende ausschliesslich dialog, das funzt ja auch unter X11 wenn es in einem Terminal läuft. Ausser Du willst mal nicht auf squeeze updaten, denn dort ist weder xdialog noch gtkdialog vorhanden (wahrscheinlich wegen der gtk 1.2 Abhängigkeit).
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."

tuxfreund
Beiträge: 58
Registriert: 01.12.2009 19:19:46

Re: dialog/ Xdialog

Beitrag von tuxfreund » 16.11.2010 17:40:32

Danke. An die Umgebungsvariable $DISPLAY hatte ich noch gar nicht gedacht. Habs jetzt so probiert und es läuft.

Code: Alles auswählen

#!/bin/sh
if [ -z "$DISPLAY" ]; then ausgabe=dialog; else ausgabe=Xdialog; fi
$ausgabe --msgbox "Hallo Otto" 0 0

Antworten