从Xcode执行shell命令时如何将参数传递给参数?

时间:2012-03-22 14:00:01

标签: objective-c xcode shell command-line-arguments

在objective-c中,我可以执行以下操作:

NSTask* foo = [NSTask alloc]init];
[foo setLaunchPath:@"/usr/bin/open"];

[foo setArguments:[NSArray arrayWithObjects:
                                @"/foo/foobar.app/foobarbinary,
                                nil]];  
// Arguments to the command: the name of the
// Applications directory

[foo launch];
// Run the command

[foo release];

问题是,如果foobarbinary接受命令行参数,我该如何传递它们? :) 如果我将它们添加到NSArray中,那么shell假定它们是“open”的参数。如果我将它添加到字符串中,就在foobarbinary之后(例如:@“foo / foobar.app / foobarbinary -someargument”),那么“open”假定文件的名称是“foo / foobar.app / foobarbinary - someargument”。

那么如何将参数传递给参数? :S

EDIT。我尝试在数组中使用--args命令。但似乎foobarbinary没有收到我在远处指定的参数--args。 :S任何人都有一个我可以看的例子吗?

1 个答案:

答案 0 :(得分:1)

open命令不允许您这样做。如果你想将参数传递给foobarbinary,你必须直接启动它。