使用 [ -z $DISPLAY ] 測試 $DISPLAY 的目的為何?

使用 [ -z $DISPLAY ] 測試 $DISPLAY 的目的為何?

腳本的開頭是:

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

我明白那個

  • $DISPLAY保存附加到哪個偽終端的值
  • [ -z $DISPLAY ]測試 $DISPLAY 是否有值或是空字串

$DISPLAY保留一個值的目的是什麼,當它有一個空字串時有什麼不同?為什麼知道[ -z $DISPLAY ]真假對於腳本的進一步執行至關重要?

答案1

無論這個腳本是什麼,它都使用該$DISPLAY值來確定它是否在 X11 環境中運行(如果腳本在桌面環境中運行,$DISPLAY則將被設定)。它根本不關心實際價值。

  • 如果它在 X11 中運行,則設定DIALOGXdialog,這可能是用於顯示對話方塊的 X11 程式。

  • 如果它不是在 X11 中運行(例如,它在無頭電腦上或在 SSH 會話中),則它被設定DIALOGdialog,這可能是用於顯示對話方塊的curses(或至少基於文字的)程式。

稍後,該腳本可以用來$DIALOG顯示適合使用者的對話框。

相關內容