我正在用 NodeJS 编写一个 CLI。因为我可以使用 child_process 轻松运行 bash/shell 命令,所以我想知道最简单的最跨平台的方式检测 bash/shell 中 GUI 的可用性。
Thanks!
在 macOS 上,没有明显合适的方法可以从 shell 中检查这一点。有一种编程方式,我们可以使用解释性语言来利用它。
下面是一个输出以下三种状态之一的小脚本:Mac GUI、Mac 非 GUI 或 X11:
#!/bin/bash
check_macos_gui() {
command -v swift >/dev/null && swift <(cat <<"EOF"
import Security
var attrs = SessionAttributeBits(rawValue:0)
let result = SessionGetInfo(callerSecuritySession, nil, &attrs)
exit((result == 0 && attrs.contains(.sessionHasGraphicAccess)) ? 0 : 1)
EOF
)
}
if [ "$(uname)" = "Darwin" ]; then
if check_macos_gui; then
echo "Mac GUI session"
elif [ -n "$DISPLAY" ]; then
echo "Mac X11 GUI session"
else
echo "Mac non-GUI session"
fi
elif [ -n "$DISPLAY" ]; then
echo "X11 GUI session"
fi
Mac 可以安装 X 服务器,在这种情况下DISPLAY
被定义为。但是,我不知道您的 Electron 应用程序是否可以在该配置中正常工作。所以我单独检测了一下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)