![使用 [ -z $DISPLAY ] 测试 $DISPLAY 的目的是什么?](https://linux22.com/image/112355/%E4%BD%BF%E7%94%A8%20%5B%20-z%20%24DISPLAY%20%5D%20%E6%B5%8B%E8%AF%95%20%24DISPLAY%20%E7%9A%84%E7%9B%AE%E7%9A%84%E6%98%AF%E4%BB%80%E4%B9%88%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
显示适合用户的对话框。