使用 [ -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显示适合用户的对话框。

相关内容