OSX:如何以编程方式判断我是在终端还是iTerm中运行?



我有一个命令行应用程序在OSX上运行,它想使用AppleScript在当前窗口中创建几个选项卡。

如何判断我的程序是在终端、iTerm 还是其他终端程序中运行?

$TERM_PROGRAM env var 设置为 iTerm.appApple_Terminal,因此如果您将其作为参数传递给osascript,您可以确定要运行哪些 AppleScript cmds(假设您的炮击到 osascript

用法示例:

osascript ThisScriptName.scpt $TERM_PROGRAM

示例脚本:

--osascript ThisScriptName.scpt $TERM_PROGRAM
on run {TermType}
    if (TermType = "iTerm.app") then
        -- iTerm.app :-P
        tell application "iTerm"
            tell current window
                tell current session
                    set newSession to (split horizontally with default profile)
                end tell
            end tell
        end tell
    else if (TermType = "Apple_Terminal") then
        -- Terminal.app
        tell application "Terminal"
            do script "open 'https://iterm2.com/downloads.html'" in window 1
        end tell
    else
        -- Unknown terminal application
        return "Really? Not using iTerm.app or Terminal.app"
    end if
end run
osascript -e 'tell application "Finder" to get the name of every process whose visible is true'

这将是一个正在运行的应用程序列表,假设您只运行终端之一,iTerm,...,这将起作用

对列表做你想做的事

希望这有帮助

相关内容

  • 没有找到相关文章

最新更新