0

我在调用一个 shell 脚本时遇到问题,该脚本从我的 Mac 的 Cocoa 应用程序中获取一个参数。

我已经创建了 shell 脚本,并将它放在应用程序的本地存储库中。它被称为脚本。它需要一个参数,即 URL 地址。

我按如下方式调用脚本,但没有任何反应,没有错误或消息,只是脚本在什么都不做后停止。

NSString *address = [_addressField stringValue];
NSString *resPath = [[NSBundle mainBundle] resourcePath];

NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: [NSString stringWithFormat:@"%@/SCRIPT", resPath]];

NSArray *arguments;
arguments = [NSArray arrayWithObjects: address, nil];
[task setArguments: arguments];

NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];

NSFileHandle *file;
file = [pipe fileHandleForReading];

[task launch];

NSData *data;
data = [file readDataToEndOfFile];

NSString *status;
status = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSLog (@"%@", status);

提前谢谢大家

4

2 回答 2

0

/bin/echo如果我尝试使用作为启动路径,Objective-C 代码接缝对我来说可以正常工作。所以我想问题出在脚本上。您可以在问题中包含脚本吗?请注意,从 Cocoa 应用程序运行时的环境可能与在交互式 shell 中运行时的环境完全不同。

于 2012-06-08T09:36:15.367 回答
0

会不会是权限问题?尝试调用 /bin/sh 并将脚本路径设置为第一个参数。

于 2015-12-03T14:11:26.083 回答