Was ist der Zweck des Testens von $DISPLAY mit [ -z $DISPLAY ]?

Was ist der Zweck des Testens von $DISPLAY mit [ -z $DISPLAY ]?

Ganz am Anfang eines Skripts steht:

if [ -z $DISPLAY ]
then
  DIALOG=dialog
else
  DIALOG=Xdialog
fi

Ich verstehe das

  • $DISPLAYenthält den Wert des Pseudoterminals, an das eins angeschlossen ist
  • [ -z $DISPLAY ]testet, ob $DISPLAY einen Wert hat oder ein leerer String ist

Was ist der Zweck des $DISPLAYBeibehaltens eines Wertes, was ist anders, wenn er eine leere Zeichenfolge enthält? Warum ist es für die weitere Ausführung des Skripts entscheidend zu wissen, ob [ -z $DISPLAY ]wahr oder falsch ist?

Antwort1

Was auch immer dieses Skript ist, es verwendet den $DISPLAYWert, um zu bestimmen, ob es in einer X11-Umgebung ausgeführt wird oder nicht (wenn das Skript beispielsweise in einer Desktop-Umgebung ausgeführt wird, $DISPLAYwird es festgelegt). Der tatsächliche Wert ist ihm völlig egal.

  • Wenn es unter X11 ausgeführt wird, wird es DIALOGauf gesetzt Xdialog, wobei es sich vermutlich um ein X11-Programm zum Anzeigen von Dialogfeldern handelt.

  • Wenn es nicht unter X11 ausgeführt wird (z. B. auf einem Headless-Computer oder in einer SSH-Sitzung), wird es DIALOGauf gesetzt dialog, wobei es sich vermutlich um ein Curses-Programm (oder zumindest ein textbasiertes Programm) zum Anzeigen von Dialogfeldern handelt.

Später kann das Skript $DIALOGdazu verwendet werden, ein für den Benutzer geeignetes Dialogfeld anzuzeigen.

verwandte Informationen