Я пытаюсь запустить скрипт из приложения Mac OS / X, используя Swift 5, но при запуске процесса не удается найти скрипт (и я уверен, что мне не хватает чего-то очевидного, но я не вижу что)
Я попытался передать только имя сценария, полный URL-адрес сценария, а также файл task.currentDirectoryURL завершен и не завершен; но все равно не может найти скрипт
public func run() -> Bool {
let task = Process()
// scriptURL URL "file:///Users/phil/Documents/My%20Scripts/"
// name String "myscript"
task.executableURL = scriptURL.appendingPathComponent(name).appendingPathExtension("sh")
task.currentDirectoryURL = scriptURL
task.arguments = []
let outputPipe = Pipe()
let errorPipe = Pipe()
task.standardOutput = outputPipe
task.standardError = errorPipe
do {
try task.run()
let outputData = outputPipe.fileHandleForReading.readDataToEndOfFile()
print(String(decoding: outputData, as: UTF8.self))
return true
} catch let error as NSError {
print(error.localizedDescription)
let handle = errorPipe.fileHandleForReading
let errorData = handle.readDataToEndOfFile()
print(String(decoding: errorData, as: UTF8.self))
return false
}
}
Когда вызывается task.run (), он перехватывается Catch и NSError возвращает «Файл« myscript.sh »не существует.», Но он существует в папке ScriptsURL.