gpt4 book ai didi

objective-c - 如何在我的快捷菜单栏应用程序中运行终端命令?

转载 作者:行者123 更新时间:2023-11-28 06:58:27 25 4
gpt4 key购买 nike

我做了一个菜单栏应用程序,我希望这个命令在按下时运行

rm -rf ~/.Trash/*

我目前的代码是这样的:

@IBAction func toggleClicked(sender: NSMenuItem) {

let task = NSTask()
task.launchPath = "/bin/sh"
task.arguments = ["rm", "-rf", "~/.Trash/*"]
task.launch()
task.waitUntilExit()

}

但是当我运行它时,出现以下错误:

/bin/rm: /bin/rm: cannot execute binary file

我真的不明白为什么我会收到这个错误,因为我可以打开终端并运行/bin/sh,然后输入 rm -rf ~/.Trash/* 并且它按预期工作。

编辑

我已经尝试将命令更改为此但没有任何反应:

    task.launchPath = "/bin/rm"
task.arguments = ["-rf", "~/.Trash/*"]

最佳答案

制作/bin/sh从您需要传递 -c 参数的命令行字符串中读取。

您的代码需要更改如下:

    let task = NSTask()
task.launchPath = "/bin/sh"
task.arguments = ["-c", "rm -rf ~/.Trash/*"]
task.launch()
task.waitUntilExit()

关于objective-c - 如何在我的快捷菜单栏应用程序中运行终端命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32689013/

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