OP的问题措辞非常糟糕。从一点网络搜索:
Savant 是一个托管在 OS X 上的家庭自动化系统。不幸的是,该网站全是闪存,没有实质内容,所以我放弃了在那里寻找文档。
scli
是一个基于命令行的远程管理程序,用于通过SNMP控制网络设备,例如路由器(以及可能是运行 Savant 服务器的无头 Mac Mini)。大概sclibridge
是特定于供应商的实现;这不是一个常见的术语。
是否scli[bridge]
用于直接控制 Savant 尚不清楚,但我猜可能不是:它似乎有点低级和通用,所以可能只是用于管理 Mac 本身。很可能它包括一个向远程机器发送 shell 命令的选项,避免了一直在之间跳转的需要scli
,ssh
但我没有费心去详细阅读。
我不知道 OP 是如何从那里开始想要运行 Ruby 脚本的,也不知道为什么他们的示例代码想要通过远程 Apple 事件与他们的 Mac 对话,而这在 Linux 上是不可用的。我怀疑这主要是由于糟糕的供应商文档造成的混乱。
无论如何,假设他们可以使用scli
或ssh
运行远程 *nix 命令,最简单的事情是向 Mac 添加一堆可执行的 AppleScript,然后 Linux 机器可以像任何其他 shell 命令一样远程执行。例如,将以下内容另存为名为 的纯文本(未编译的 AppleScript)文件kodi-remote
:
#!/usr/bin/osascript
on run argv
-- argv : list of string -- any arguments to `kodi-remote` command
if argv is {} or item 1 of argv is "help" then
log "Usage: kodi-remote [ run | quit | help ]"
return
end if
set cmd to item 1 of argv
if cmd is "run" then
tell application "Kodi" to run
else if cmd is "quit" then
tell application "Kodi" to quit
else
error "Unknown command: " & cmd number 1
end if
end run
用于chmod +x kodi-remote
使其可执行并将其放在远程shell 可以找到它的位置(例如/usr/local/bin
)。
您可以通过在 Terminal.app 中打开一个新窗口并运行来在本地对其进行测试:
kodi-remote run
kodi-remote quit
然后,相同的命令应该可以在您用于在 Linux 机器上运行远程 shell 命令的任何地方工作。