В самом начале сценария стоит:
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
для отображения диалогового окна, подходящего для пользователя.