如何根据 GUI 是否可用设置环境变量?

TM.*_*TM. 7 x11 environment-variables

如何设置我的 .bashrc 以便环境变量的值根据当前会话是否可以访问 gui/窗口系统而改变?

例如,假设我有一个环境变量来控制我的 VCS 将使用哪个 diff 程序。

当我坐在机器前时,我想使用 GUI 程序。但是,当我通过 SSH 远程连接时,我想让它自动使用基于文本的终端差异查看器。

如何检查窗口系统是否可用?

Kev*_*vin 9

您可以检查$DISPLAY变量以查看您是否在 x 显示上 - 如果它不为空,则您有一个显示:

if [ -n "$DISPLAY" ]; then
    # run GUI program
else
    # run term program
fi
Run Code Online (Sandbox Code Playgroud)

快速测试表明这甚至适用于 X 隧道。