我在调用shell脚本时遇到问题,该脚本从我的Cocoa应用程序中获取Mac的参数。
我创建了shell脚本,并将其放在应用程序的本地存储库中。它被称为SCRIPT。它需要一个参数,即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);
先谢谢大家
答案 0 :(得分:0)
如果我尝试使用/bin/echo
作为启动路径,Objective-C代码接缝可以正常工作。所以我想问题是脚本。你能在问题中加入脚本吗?请注意,从Cocoa应用程序运行时的环境可能与在交互式shell中运行时的环境完全不同。
答案 1 :(得分:0)
可能是权限问题吗?尝试调用/ bin / sh并将脚本路径设置为第一个参数。