Какова цель тестирования $DISPLAY с помощью [ -z $DISPLAY ]?

Какова цель тестирования $DISPLAY с помощью [ -z $DISPLAY ]?

В самом начале сценария стоит:

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

Я это понимаю

  • $DISPLAYхранит значение, к которому присоединен псевдотерминал
  • [ -z $DISPLAY ]проверяет, имеет ли $DISPLAY значение или является пустой строкой

Какова цель $DISPLAYсохранения значения, чем отличается пустая строка? Почему для дальнейшего выполнения скрипта важно знать, [ -z $DISPLAY ]является ли значение true или false?

решение1

Что бы это ни был за скрипт, он использует $DISPLAYзначение для определения, запущен ли он в среде X11 или нет (если скрипт запущен, например, в среде рабочего стола, $DISPLAYбудет установлен). Его вообще не волнует фактическое значение.

  • Если он работает в X11, он устанавливает DIALOGзначение Xdialog, которое предположительно является программой X11 для отображения диалоговых окон.

  • Если он не запущен в X11 (например, на машине без монитора или в сеансе SSH), он устанавливает DIALOGзначение dialog, которое предположительно является программой curses (или, по крайней мере, текстовой) для отображения диалоговых окон.

Позже скрипт может использоваться $DIALOGдля отображения диалогового окна, подходящего для пользователя.

Связанный контент