OSX:如何以编程方式判断我是在终端还是在 iTerm 中 运行?
OSX: How can I programatically tell if I'm running in Terminal or iTerm?
我在 OSX 上有一个命令行应用程序 运行,它想使用 AppleScript 在当前 window 中创建多个选项卡。
如何判断我的程序是终端、iTerm 还是其他终端程序中的 运行?
osascript -e 'tell application "Finder" to get the name of every process whose visible is true'
这将是一个 运行 应用程序列表,假设你只有 运行 一个终端,iTerm,...,这将有效
用列表做你想做的事
希望对您有所帮助
$TERM_PROGRAM
env var 设置为 iTerm.app
或 Apple_Terminal
,因此如果将其作为参数传递给 osascript
(假设 你的炮击到 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
我在 OSX 上有一个命令行应用程序 运行,它想使用 AppleScript 在当前 window 中创建多个选项卡。
如何判断我的程序是终端、iTerm 还是其他终端程序中的 运行?
osascript -e 'tell application "Finder" to get the name of every process whose visible is true'
这将是一个 运行 应用程序列表,假设你只有 运行 一个终端,iTerm,...,这将有效
用列表做你想做的事
希望对您有所帮助
$TERM_PROGRAM
env var 设置为 iTerm.app
或 Apple_Terminal
,因此如果将其作为参数传递给 osascript
(假设 你的炮击到 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