我必须运行命令来终止进程,命令是kill pgrep -f /dev
,我知道运行命令NSTask
是用的
但是如何用这些特殊参数运行上面的命令,而pgrep -f / dev在``中
我试过这段代码
NSTask *task = [[NSTask alloc]init];
[task setLaunchPath:@"/bin/kill"];
[task setArguments:@[@"`",@"pgrep",@"-f",@"/dev",@"`" ];
[task launch];
请告诉我如何写得正确,我知道我的论据错了。 谢谢, 任何帮助将受到高度赞赏。
答案 0 :(得分:0)
您的问题似乎在于误解了命令行的处理方式。当您键入行时:
FROM Artists JOIN albums USING (ar_id)
您正在键入 shell ,可能是kill `pgrep -f /dev`
但可能是bash
等。后引号(`)是shell功能; shell将安排运行两个命令并获取tcsh
的输出并将其作为参数传递给pgrep
。
在您的代码中,您尝试执行kill
并将其作为参数传递给后面引用的kill
命令。这不会起作用,pgrep
对后引号一无所知,这是一个shell特征......
因此,请阅读shell文档(kill
),您会发现可以将shell命令行作为单个参数传递给shell命令本身 - 您可以自己在终端中尝试它。想通了,你可以使用你的man sh
代码运行shell,并将命令行传递给它。
HTH