linux-l: Shell-Abfrage: Laeuft X?

Peter J. Weyers peter at xweyers.ifh.de
So Nov 30 03:28:17 CET 1997


On Fri, 28 Nov 1997, Oliver Bandel wrote:

> > Die DISPLAY variable lesen X11 Programme i.A. selber aus.
> Was nützt mir das, wenn Programme das können, wenn ich selber 
> so etwas machen will und nicht genau weiß, wie es geht?
Das Program kann nicht mehr als Du. Aber wenn Du nicht mehr machst als
das Program, dann kannst Du es auch bleiben lassen. Ich hatte lediglich
aus didaktischen Gruenden versucht, Redundanz zu benutzen, aber
offensichtlich bin ich ein schlechter Didakt ;-)

> Bei $DISPLAY war mir nicht einleuchtend, was da groß anders war.

Das scheint ja auch auf Deiner Distribution IMHO nicht gut aufgesetzt zu
sein.

Also nochmal im Klartext: (alles IMHO)

Bei einem sauber aufgesetzten System, ist in Shells, die in den
Text-Konsolen laufen DISPLAY *ueberhauptnicht* gesetzt. Damit ist
die Abfrage der DISPLAY Variable ein gutes Mittel, um festzustellen, ob
ein Prozess unter X laeuft oder nicht (Lynx macht das z.B. so fuer die
Wahl der Viewer). Wenn das bei Dir nicht so ist, sehe ich zwei
Moeglichkeiten:

a) Du bringst das in Ordnung
b) Du machst irgendwas in der Art, wie Du es schon getan hast. Um
   kompatibel zu sein, koenntest Du sowohl DISPLAY wie TERM abfragen, und
   nur in dem Fall, dass DISPLAY gesetzt ist *und* TERM *nicht* linux ist,
   annehmen, das das Skript in einer X11 Umgebung laeuft.

> Aber zumindest xterm sollte ja auf mindestens sehr vielen, vermutlich
> dem größten Teil der X-Anwender auch vorhanden sein?

Es ist in der Tat der meist benutzte Terminal Emulator unter X11, es gibt
ausser rxvt noch mindestens hpterm. Mit einem Konstrukt wie

case TERM in

 xterm*|hpterm|rxvt) # Alles was nur unter X11 zu tun ist hierhin
                     echo "X11"
                     ;;
 *)                  # Alles was nur unter Textkonsole zu tun ist, hierhin
                     echo "kein X11"
                     ;;
esac

Kannst Du ziemlich leicht viele moegliche Werte der TERM variable
abdecken. (obiges Konstrukt entscheidet auf X11 wenn der Inhalt von TERM
rxvt oder hpterm ist oder mit xterm anfaengt und deckt damit auch
xterm-color, xterm-linux etc. ab.)

> Vermutlich muß ich mir dieses ominöse Tool genauer anschauen, das
> VOR dem "-display <display>" steht....

Noe, das ist bei fast allen X Programmen gleich. Gilt z.B. auch fuer
xterm. Du kannst mit der -display option das Display fuer dieses eine
Programm setzten. Wenn diese Option nicht benutzt wird, nimmt das Programm
den Wert der DISPLAY Variablen. Deshalb ist -display $DISPLAY doppelt
gemoppelt.

Wenn es jetzt nicht klar ist, muss es jemand anders erklaeren.

Gruss,
Peter





Mehr Informationen über die Mailingliste linux-l