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

求助:在Keyboard Maestro的AppleScript中调用剪贴板IP执行SSH

解决Keyboard Maestro中AppleScript调用剪贴板IP执行SSH的问题

我明白你的需求啦——想用剪贴板里的IP地址执行SSH命令,同时不想每次都新开Terminal窗口,也不想硬编码固定IP。咱们一步步来解决:

原脚本的问题

你原来的代码里有两个关键问题:

  1. 字符串拼接错误:"ssh & the clipboard"把&写在双引号里了,这会让它变成命令的一部分,而不是AppleScript的拼接符号;另外ssh和IP之间没有空格,会导致命令格式无效。
  2. 默认新建窗口:do script如果不指定执行窗口,默认会创建新窗口,这不是你想要的行为。

修正后的脚本(推荐版)

这个脚本会优先在已有的Terminal窗口里新建标签执行SSH命令,如果没有打开的窗口,才会新建窗口:

tell application "Terminal"
    activate
    -- 拼接SSH命令:注意ssh后面要加空格,避免和IP连在一起
    set sshCommand to "ssh " & the clipboard
    -- 检查是否有已打开的Terminal窗口
    if exists window 1 then
        -- 在现有窗口的新标签中执行命令
        do script sshCommand in window 1
    else
        -- 没有窗口的话,新建窗口执行
        do script sshCommand
    end if
end tell

可选:在当前标签执行命令

如果你想直接在Terminal当前激活的标签里执行(而不是新建标签),可以用这个版本:

tell application "Terminal"
    activate
    set sshCommand to "ssh " & the clipboard
    if exists window 1 then
        -- 在当前窗口的当前标签执行命令
        do script sshCommand in current tab of window 1
    else
        do script sshCommand
    end if
end tell

使用说明

  1. 先把目标IP地址复制到剪贴板(随便从哪里复制都行)
  2. 在Keyboard Maestro里创建一个新动作,选择「Execute AppleScript」,把上面的代码粘贴进去
  3. 给这个动作设置一个快捷键触发(比如Cmd+Shift+S),之后复制IP后按快捷键就能直接触发SSH连接啦

小提示(可选)

如果担心剪贴板内容不是合法IP,可以加个简单的格式校验:

tell application "Terminal"
    activate
    set clipboardContent to the clipboard
    -- 简单判断是否符合IP格式(仅作示例,非严格校验)
    if clipboardContent matches "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" then
        set sshCommand to "ssh " & clipboardContent
        if exists window 1 then
            do script sshCommand in window 1
        else
            do script sshCommand
        end if
    else
        -- 如果不是IP,弹出提示
        display dialog "剪贴板里的内容不是有效的IP地址!"
    end if
end tell

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:24:58