You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免macOS Automator的Terminal SSH脚本打开两个窗口

解决Automator SSH脚本首次运行弹出本地Terminal窗口的问题

问题原因

首次启动Terminal应用时,它会自动创建一个默认的本地Shell窗口,之后脚本执行do script又会生成一个运行SSH的窗口,因此出现两个窗口;后续运行时Terminal已在后台,不会再生成默认窗口,所以只有SSH窗口。

解决方案

可以通过脚本先处理Terminal首次启动时的默认窗口,以下是两种可靠的实现方式:

方式一:仅首次启动时关闭默认窗口

这个方法会判断Terminal是否正在运行,只有首次启动时才关闭自动生成的默认窗口,后续运行时保留已有窗口并新增SSH窗口:

tell application "Terminal"
    set isRunning to running
    if not isRunning then
        -- 启动Terminal但不激活,此时会生成默认窗口
        launch
        -- 关闭这个默认的本地窗口
        close windows
    end if
    -- 执行SSH命令,生成远程连接窗口
    do script "ssh robot@example.com"
    -- 激活Terminal窗口
    activate
end tell

方式二:每次运行都清空现有窗口再创建SSH窗口

如果希望每次运行脚本都只保留新的SSH窗口,可以用这个写法,无论Terminal是否运行,都会先关闭所有现有窗口再创建新的SSH窗口:

tell application "Terminal"
    -- 关闭所有已打开的Terminal窗口
    close windows
    -- 执行SSH命令
    do script "ssh robot@example.com"
    activate
end tell

验证效果

将修改后的脚本替换原Automator脚本,首次运行时就只会弹出远程SSH的Terminal窗口,不会出现额外的本地窗口。

内容的提问来源于stack exchange,提问作者Robot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:35:36