首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从NSTask运行.command

从NSTask运行.command
EN

Stack Overflow用户
提问于 2014-12-17 04:40:12
回答 1查看 736关注 0票数 1

对不起,英语不是我的第一语言,我的语法能力很差。

嗨,我是一个对Objective非常陌生的开发人员,我在使用NSTask时遇到了一些问题。我有一个.command文件,我想在这个可可应用程序中执行,但是如果我使用使用NSTask的"open“命令来执行该文件,它将启动终端。有没有一种方法可以在不启动它的情况下执行它,比如一个典型的NSTask?或者我可以使用一个文本文件来执行要执行的命令?谢谢。

这是我的密码。

代码语言:javascript
复制
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];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-17 06:25:23

.command只是一个shell脚本,而不是使用open (它将这些文件与终端运行的sh相关联)传递给它-c和文件路径名作为参数:

代码语言:javascript
复制
DfileBlankSpace.launchPath = @"/bin/sh";
DfileBlankSpace.arguments = @[@"-c", pathtorb];

HTH

增编

正如注释中所指出的那样,如果您没有通过pathorb使其成为一个有效的bash路径名,那么您应该省略@"-c"参数。这使得shell可以从文件中读取,而无需解析其文件名,就像在命令行上键入一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27518456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档