![使用 [ -z $DISPLAY ] 測試 $DISPLAY 的目的為何?](https://rvso.com/image/112355/%E4%BD%BF%E7%94%A8%20%5B%20-z%20%24DISPLAY%20%5D%20%E6%B8%AC%E8%A9%A6%20%24DISPLAY%20%E7%9A%84%E7%9B%AE%E7%9A%84%E7%82%BA%E4%BD%95%EF%BC%9F.png)
腳本的開頭是:
if [ -z $DISPLAY ]
then
DIALOG=dialog
else
DIALOG=Xdialog
fi
我明白那個
$DISPLAY
保存附加到哪個偽終端的值[ -z $DISPLAY ]
測試 $DISPLAY 是否有值或是空字串
$DISPLAY
保留一個值的目的是什麼,當它有一個空字串時有什麼不同?為什麼知道[ -z $DISPLAY ]
真假對於腳本的進一步執行至關重要?
答案1
無論這個腳本是什麼,它都使用該$DISPLAY
值來確定它是否在 X11 環境中運行(如果腳本在桌面環境中運行,$DISPLAY
則將被設定)。它根本不關心實際價值。
如果它在 X11 中運行,則設定
DIALOG
為Xdialog
,這可能是用於顯示對話方塊的 X11 程式。如果它不是在 X11 中運行(例如,它在無頭電腦上或在 SSH 會話中),則它被設定
DIALOG
為dialog
,這可能是用於顯示對話方塊的curses(或至少基於文字的)程式。
稍後,該腳本可以用來$DIALOG
顯示適合使用者的對話框。