如何使用终端命令使用 swift 应用程序的参数打开新应用程序

问题描述 投票:0回答:1

你好,我想在我的应用程序 MacOS 的快速代码中使用终端命令打开带有参数的新应用程序

我有终端命令

open -n /Applications/test.app -- args arg1
当我在终端运行它时它工作正常

但是当我尝试使用快速代码运行它时

 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"]

感谢您的任何提示或帮助

swift macos terminal command
1个回答
1
投票

我很确定不是这个

let args = ["-c","open -n /Applications/test.app","--args aaaa"]

应该是这个

let args = ["-c", "open", "-n", "/Applications/test.app", "--args", "aaaa"]

另外,你真的不需要通过 zsh。你可以直接打电话给

open

task.launchPath = "/usr/bin/open"
let args = ["-n", "/Applications/test.app", "--args", "aaaa"]
© www.soinside.com 2019 - 2024. All rights reserved.