我有一个命令行应用程序在OSX上运行,它想使用AppleScript在当前窗口中创建几个选项卡。
如何判断我的程序是在终端、iTerm 还是其他终端程序中运行?
$TERM_PROGRAM
env var 设置为 iTerm.app
或 Apple_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,...,这将起作用
对列表做你想做的事
希望这有帮助