文字中的Swift无效转义序列

文字中的Swift无效转义序列

如果我尝试编译,由于"\;"我会收到“invalid escape sequence in literal”错误,但是如果我尝试使用"\\;""\u{005C};"
我收到错误find: -exec: no terminating ";" or "+"好像我没有传递反斜杠字符

@IBAction func button1(_ sender: NSButton) {

    let path = "/usr/bin/find"
    let arguments = ["folder_path","-name","'*.docx'","-print","-exec","zip","'{}'.zip","'{}'","\;"]

    sender.isEnabled = false

    let task = Process.launchedProcess(launchPath :path, arguments: arguments)

    task.waitUntilExit()

    sender.isEnabled = true
}

最佳答案

正如罗伯所说(正如我在评论中温和地建议的那样),你不是一个空壳,所以你不需要任何特别的引用或反斜杠。
我不可能在我的机器上执行zip命令,所以我进行了如下测试:

let task = Process()
task.launchPath = "/usr/bin/find"
task.arguments =
    ["/Users/matt/Desktop", "-name", "*.mp3", "-exec", "echo", "{}", ";"]

配置了适当的管道后,我运行任务并从管道中读取数据,果然,在我的桌面上找到了一个mp3文件。注意,没有参数是单引号或反斜杠。

关于swift - 文字中的Swift无效转义序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41538445/

10-09 02:35