如何使用终端命令使用来自 swift 应用程序的参数打开新应用程序
How to open new app with arguments from swift app using terminal command
你好,我想在我的应用程序 MacOS
的 swift 代码中使用终端命令打开带有参数的新应用程序
我有终端命令
open -n /Applications/test.app -- args arg1
当我 运行 它在终端
时,这个工作正常
但是当我尝试使用 swift 代码 运行 时
static func shellCommand () {
let task = Process()
task.launchPath = "/bin/zsh"
let args:[String] = ["-c","open -n /Applications/test.app","--args aaaa"]
task.arguments = args
let pipe = Pipe()
let errorPipe = Pipe()
task.standardOutput = pipe
task.standardError = errorPipe
task.launch()
task.waitUntilExit()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: String.Encoding.utf8)!
let errorData = errorPipe.fileHandleForReading.readDataToEndOfFile()
let error = String(decoding: errorData, as: UTF8.self)
print("out put from shell command \(output) error \(error)")
}
不行我也试过了
let args:[String] = ["-c","open -n /Applications/test.app --args arg1"]
感谢您的任何提示或帮助
我很确定不是这个
let args:[String] = ["-c","open -n /Applications/test.app","--args aaaa"]
应该是这个
let args:[String] = ["-c","open","-n","/Applications/test.app","--args","aaaa"]
此外,您实际上并不需要通过 z shell。您可以直接调用 open
。
task.launchPath = "/usr/bin/open"
let args:[String] = ["-n","/Applications/test.app","--args","aaaa"]
你好,我想在我的应用程序 MacOS
的 swift 代码中使用终端命令打开带有参数的新应用程序我有终端命令
open -n /Applications/test.app -- args arg1
当我 运行 它在终端
但是当我尝试使用 swift 代码 运行 时
static func shellCommand () {
let task = Process()
task.launchPath = "/bin/zsh"
let args:[String] = ["-c","open -n /Applications/test.app","--args aaaa"]
task.arguments = args
let pipe = Pipe()
let errorPipe = Pipe()
task.standardOutput = pipe
task.standardError = errorPipe
task.launch()
task.waitUntilExit()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: String.Encoding.utf8)!
let errorData = errorPipe.fileHandleForReading.readDataToEndOfFile()
let error = String(decoding: errorData, as: UTF8.self)
print("out put from shell command \(output) error \(error)")
}
不行我也试过了
let args:[String] = ["-c","open -n /Applications/test.app --args arg1"]
感谢您的任何提示或帮助
我很确定不是这个
let args:[String] = ["-c","open -n /Applications/test.app","--args aaaa"]
应该是这个
let args:[String] = ["-c","open","-n","/Applications/test.app","--args","aaaa"]
此外,您实际上并不需要通过 z shell。您可以直接调用 open
。
task.launchPath = "/usr/bin/open"
let args:[String] = ["-n","/Applications/test.app","--args","aaaa"]