我试图通过 Mac 上的 bash 确定我是否处于图形环境中。
目标是在 bash 脚本中拥有一个可以处理这两种情况的 if/else 结构。
情况1:我可以从命令行打开窗口。
案例2:我无法从命令行打开窗口。
答案1
假设检查 Finder 是否正在运行就足够了,您可以使用
if pgrep -qx Finder; then
echo 'Finder is running'
else
echo 'Finder is not running'
fi
如果您正在运行某些 X 服务器(在 macOS 上不常见),并且想要检查当前会话是否附加到它,
if [ -n "$DISPLAY" ]; then
echo 'In X'
else
echo 'Not in X'
fi
这两个测试都很幼稚,但至少涵盖了最基本的情况。