我正在尝试使用Swift在(macOS)终端中运行命令。具体来说,要创建一个空文件。这是我在shell中运行的条件:
import Foundation
func shell(_ args: String...) ->Int32{
let task = Process()
task.launchPath = "/bin/bash"
task.arguments = args
task.launch()
task.waitUntilExit()
return task.terminationStatus
}
请注意,我尝试使用/usr/bin/env/
作为启动路径,但效果不佳。
当我致电shell("touch /path/to/new/file.txt")
时,它返回如下错误:
/bin/bash: touch /Users/my_home_dir/Desktop/file.txt: No such file or directory
127
如果我更改启动路径,它会给出非常冗长但无济于事的控制台消息这让我想起了Python的典型输出 <'class 'demo' at 0x577e040ab4f'>
我什至尝试在终端中运行python并使用open()
创建文件。
我乐于接受在Swift中创建文件的任何新方法(这很好),以及实现上述目的以使实际上可行的任何方法。
预先感谢
答案 0 :(得分:0)
直接在终端中调用该命令(/bin/bash touch ~/Desktop/touch.txt
)会导致相同的错误。
/ usr / bin / touch:无法执行二进制文件
如果您只想调用“触摸”,则可以将启动路径设置为/usr/bin/touch
,并且只传递~/Desktop/touch.txt
作为参数。
如果要调用常规的bash / shell命令,请传递-c
,然后传递以字符串形式连接的shell命令,以便它对应于:/bin/bash -c "touch ~/Desktop/touch.txt"
。