我在pi上运行OSMC,晚上我喜欢在不关闭整个pi的情况下在晚上关闭HDMI。现在,我正在通过终端或我创建的一些Automator工作流来执行此操作。最近,我想将其合并到状态栏应用程序中。我遇到的问题是弄清楚如何使用swift将ssh放入pi,然后在将ssh放入pi后,将命令发送到pi。这是我目前无法使用的内容:

@IBAction func OSMCClicked(sender: NSMenuItem) {
    let task = NSTask()
    task.launchPath = "/usr/bin/"
    if (sender.state == NSOnState) {
        sender.state = NSOffState
        task.arguments = ["mosh [email protected]", "osmc stop", "exit"]
        //task.arguments = ["mosh [email protected]"]
        //task.arguments = ["OSMC stop"]
        //task.arguments = ["exit"]
    }
    else {
        sender.state = NSOnState
        task.arguments = ["mosh [email protected]", "osmc start", "exit"]
        //task.arguments = ["mosh [email protected]"]
        //task.arguments = ["osmc start"]
        //task.arguments = ["exit"]
    }
    task.launch()
}

最佳答案

所以我只是对ssh或NSTask不太了解。事实证明,启动路径可以是/usr/bin/ssh,然后参数是["[email protected]", "osmc start", "exit"]。除了osmc别名位于我的.bashrc文件中,该文件在非交互式时不起作用,因此我最终将其替换为实际命令,并使用-t标志而不是exit。

09-07 11:41