在 Mac 中,如何在脚本 (sh/bash/applescript) 中确定当前是否通过 Apple Remote D



我正在为 Mac 创建一个应用程序安装程序。安装程序涉及在安装时从用户处获取代码。我在代码输入屏幕中使用了安装程序插件。

我已经阅读(从此链接)并验证插件在命令行和 Apple 远程桌面中不起作用。我可以使用变量("$COMMAND_LINE_INSTALL")检查安装程序是否从命令行运行。

我的问题是,如何以编程方式检查它是否通过 Apple 远程桌面运行?

如果

pstree可用,您可以快速获取当前进程的祖先,并查看Apple远程桌面是否在其中,例如pstree -p $$ bash。不幸的是,我使用 brew 安装了pstree,所以除非您自己分发二进制文件,否则您很可能无法使用此功能。

另一种方法是自己走上父母。这是我测试的一个示例,用于检查我是否在 iTerm 内运行(我使用 iTerm 作为示例,因为我不知道在 Apple 远程桌面中运行时pstree输出会是什么样子)。

pid=$$
running_in_iterm=0
while [ $pid -ne 1 ]; do
    command=$(ps -o command= -p $pid)
    case "$command" in
        *iTerm*)
            running_in_iterm=1
            break;;
    esac
    pid=$(ps -o ppid= -p $pid)
done
if [ $running_in_iterm -eq 1 ]; then
    echo "Running in iTerm"
else
    echo "Not running in iTerm"
fi

您可以尝试从内置Terminal应用和iTerm运行此脚本,并查看差异。

相关内容

  • 没有找到相关文章

最新更新