sha*_*ant 4 shell-script environment-variables test
在脚本的最开始是:
if [ -z $DISPLAY ]
then
DIALOG=dialog
else
DIALOG=Xdialog
fi
Run Code Online (Sandbox Code Playgroud)
我明白那个
$DISPLAY
持有附加到哪个伪终端的值[ -z $DISPLAY ]
测试 $DISPLAY 是否有值或者是空字符串$DISPLAY
保持一个值的目的是什么,当它有一个空字符串时有什么不同?为什么知道[ -z $DISPLAY ]
是 true 还是 false对脚本的进一步执行至关重要?
无论这个脚本是什么,它都使用该$DISPLAY
值来确定它是否在 X11 环境中运行(如果脚本在例如桌面环境中运行,$DISPLAY
则将被设置)。它根本不关心实际值。
如果是在X11中运行,则设置DIALOG
为Xdialog
,大概是一个用于显示对话框的X11程序。
如果它不是在 X11 中运行(例如,它在无头机器上或在 SSH 会话中),它会设置DIALOG
为dialog
,这大概是一个用于显示对话框的 curses(或至少基于文本)程序。
稍后,脚本可用于$DIALOG
显示适合用户的对话框。