gpt4 book ai didi

swift - NSTask 在命令中添加额外的单引号

转载 作者:行者123 更新时间:2023-11-30 10:08:52 24 4
gpt4 key购买 nike

我正在编写一个任务来访问 OpenSSL 二进制文件。如果我复制/粘贴不带单引号的命令,那么它在终端中可以完美运行。

我不断将引用粘贴到命令中。这是代码/错误...

let keySizeValue = keySizes[keySizeChoice.indexOfSelectedItem]

task.launchPath = "/usr/bin/openssl"
task.arguments = ["req -new -newkey \(keySizeValue) -out ~/Desktop/Certs/MyNew.csr -keyout ~/Desktop/Certs/\(privateKeyText.stringValue).key -subj \"/C=US/ST=\(stateText.stringValue)/L=\(cityText.stringValue)/O=\(organizationText.stringValue)/OU=\(departmentText.stringValue)/CN=\(commonNameText.stringValue)\"", "\(privateKeyPassword)", "\(passwordVerify)"]

task.launch()
task.waitUntilExit()

我已经在上面定义了我的任务和 keySizes 数组,但是错误是Openssl:错误:req -new -newkey rsa:2048 -out ~/Desktop/Certs/MyNew.csr -keyout ~/Desktop/Certs/a.key -subj "/C=US/ST= a/L=a/O=a/OU=a/CN=a"' 是无效命令

可能是我使用 NSTask 不当,但我觉得这看起来是正确的。有人有好的建议吗:D

最佳答案

如果要向 NSTask 提供多个参数,则必须将它们作为以逗号分隔的唯一项添加到参数数组中

let keySizeValue = keySizes[keySizeChoice.indexOfSelectedItem]

task.launchPath = "/usr/bin/openssl"
task.arguments = ["req", "-new", "-newkey", "\(keySizeValue)", "-out", "~/Desktop/Certs/MyNew.csr", "-keyout", "~/Desktop/Certs/\(privateKeyText.stringValue).key", "-subj", "\"/C=US/ST=\(stateText.stringValue)/L=\(cityText.stringValue)/O=\(organizationText.stringValue)/OU=\(departmentText.stringValue)/CN=\(commonNameText.stringValue)\"", "\(privateKeyPassword)", "\(passwordVerify)"]

task.launch()
task.waitUntilExit()

关于swift - NSTask 在命令中添加额外的单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34346529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com