在Swift的Bash Terminal中创建文件

时间:2018-09-07 17:08:41

标签: swift macos file terminal

我正在尝试使用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中创建文件的任何新方法(这很好),以及实现上述目的以使实际上可行的任何方法。

预先感谢

1 个答案:

答案 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"