【发布时间】:2018-04-15 10:38:48
【问题描述】:
我正在尝试在 Xcode 中获取一个按钮来运行带有单击的 shell 脚本。
这行得通
@IBAction func test(_ sender: NSButton) {
let path = "/usr/bin/say"
let arguments = ["hello world"]
sender.isEnabled = false
let task = Process.launchedProcess(launchPath: path, arguments: arguments)
task.waitUntilExit()
sender.isEnabled = true
}
但是当我尝试这样做时,它无法从桌面运行脚本
@IBAction func test(_ sender: NSButton) {
let path = "/bin/bash"
let arguments = ["~/Desktop/test.sh"]
sender.isEnabled = false
let task = Process.launchedProcess(launchPath: path, arguments: arguments)
task.waitUntilExit()
sender.isEnabled = true
}
我在 Xcode 中得到这个错误输出
/bin/bash: ~/Desktop/test.sh: No such file or directory
如果有人可以帮助我提供一些帮助或示例,那就太好了。谢谢。
【问题讨论】:
-
也许它无法将
~处理为主目录。尝试完整的绝对路径 -
你好。我试过并得到了这个 /bin/bash: /Users/atejada/Desktop/test.sh: Operation not allowed
-
好的,所以它通过了第一个问题。不熟悉XCode。检查该文件的权限。您是否以自己的身份运行此流程?
-
太棒了。是的我自己。该脚本是可执行的。我可以通过终端运行它
-
不知道该怎么办。我会用最新的错误消息更新您的问题,因为它现在是一个不同的问题
标签: swift xcode bash macos shell