对不起,英语不是我的第一语言,我的语法能力很差。
嗨,我是一个对Objective非常陌生的开发人员,我在使用NSTask时遇到了一些问题。我有一个.command文件,我想在这个可可应用程序中执行,但是如果我使用使用NSTask的"open“命令来执行该文件,它将启动终端。有没有一种方法可以在不启动它的情况下执行它,比如一个典型的NSTask?或者我可以使用一个文本文件来执行要执行的命令?谢谢。
这是我的密码。
NSString *pathtorb = [[NSBundle mainBundle] pathForResource:@"rightSpace" ofType:@"command"];
NSTask *DfileBlankSpace = [[NSTask alloc]init];
DfileBlankSpace.launchPath = @"/usr/bin/open";
DfileBlankSpace.arguments = @[pathtorb];
[DfileBlankSpace launch];
[DfileBlankSpace waitUntilExit];
NSTask *killDock = [[NSTask alloc]init];
killDock.launchPath = @"/usr/bin/killall";
killDock.arguments = @[@"Dock"];
[killDock launch];
[killDock waitUntilExit];发布于 2014-12-17 06:25:23
.command只是一个shell脚本,而不是使用open (它将这些文件与终端运行的sh相关联)传递给它-c和文件路径名作为参数:
DfileBlankSpace.launchPath = @"/bin/sh";
DfileBlankSpace.arguments = @[@"-c", pathtorb];HTH
增编
正如注释中所指出的那样,如果您没有通过pathorb使其成为一个有效的bash路径名,那么您应该省略@"-c"参数。这使得shell可以从文件中读取,而无需解析其文件名,就像在命令行上键入一样。
https://stackoverflow.com/questions/27518456
复制相似问题