gpt4 book ai didi

macos - 在 Mac 上,在 shell 中,我如何知道我有一个 GUI?

转载 作者:行者123 更新时间:2023-12-02 02:36:28 24 4
gpt4 key购买 nike

因为你们(可爱的)人总是对海报的初衷很好奇,这是我的:

If I'm on a Mac and have a GUI (as opposed to, say, being on an ssh session), I want to set my $EDITOR to mate_wait. (And go with vim otherwise.)

而且,你有一个答案。我也做。它甚至可以工作。这里。有时。

所以我希望你仔细检查它:

跳过介绍

我可以通过检查来判断我使用的是 Mac:

[ `uname` = 'Darwin' ]

我想我可以通过检查来判断我有一个 GUI:

[ "$TERM_PROGRAM" = 'Apple_Terminal' ]
# or
[ "$DISPLAY" ]

现在,理论上我有一个运行 X11 的 Aqua-less OpenDarwin 设置是可能的。也有可能我正在运行完全可舔的 Mac GUI,但使用的是另一个终端应用程序。

还有一种令人费解的可能性,即我在运行于 OS X GUI 之上的 Apple X11 中运行 xterm。在这种情况下,我仍然希望 mate_wait$EDITOR

看在强制症的份上,我希望我的检查尽可能准确。

所以,请不要鲁莽地使用我的代码。

最佳答案

我会尝试一下,请注意它可能不完整。
条件一:我是本地人吗

[ -z "$SSH_CLIENT" ]

条件二:我是远程的吗

[ -n "$SSH_CLIENT" ]

条件三:我有可舔的mac GUI吗

[ -n "`ps -fe | grep '[W]indowServer'`" ]

所以把这些放在一起:

if [ -z "$SSH_CLIENT" -a -n "`ps -fe | grep '[W]indowServer'`" ]; then
EDITOR="matew"
else
EDITOR=vim
fi

您将需要一个名为“matew”的脚本来执行以下操作:

#!/bin/sh
exec mate -w "$*"

因为 EDITOR 只是一个直接命令,如果它是“mate -w”(至少在雪豹上是这样),它将不起作用。

关于macos - 在 Mac 上,在 shell 中,我如何知道我有一个 GUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1392976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com