微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 MacOs SwiftUI App 在终端中运行 shell .sh 脚本

如何解决从 MacOs SwiftUI App 在终端中运行 shell .sh 脚本

我想创建一个 SwiftUI MacOs 应用程序来从我的应用程序运行 shell 脚本。 因此,我想打开终端并粘贴 .sh 或此脚本的内容并运行它。 首先,我收到了一个权限被拒绝错误,我通过删除沙箱模式解决了这个错误

但是现在脚本中的所有命令(如 npm 或 mvn)都导致我出现错误"zsh:1: command not found: npm\n"

你有解决我的问题的方法吗?

struct ContentView: View {
    
    var title : String
    
    var body: some View {
        vstack {
          
            Button(action: {
                runcommand()
            }) {
                Text("Run")
            }
        }
    }
}


func runcommand() {

    let path = "/Users/User1/Desktop/test.sh"
    print( shell("/Users/User1/Desktop/test.sh start") )
}

func shell(_ command: String) -> (String?) {
    let task = Process()

    task.launchPath = "/bin/zsh"
    task.arguments = ["-c",command]

    let pipe = Pipe()
    task.standardOutput = pipe
    task.standardError = pipe
    task.launch()

    let data = pipe.fileHandleForReading.readDataToEndOfFile()
    let output = String(data: data,encoding: .utf8)
    task.waitUntilExit()
    return (output)
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。