2012-06-08 2 views
0

Mac 용 Cocoa 응용 프로그램에서 인수를 취하는 쉘 스크립트를 호출하는 데 문제가 있습니다.Mac 응용 프로그램에서 인수로 쉘 스크립트 호출

쉘 스크립트를 생성하여 앱의 로컬 저장소에 저장했습니다. 그것은 SCRIPT라고합니다. URL 주소 인 하나의 인수를 취합니다.

나는 다음과 같이 스크립트를 호출하지만 아무런 일도 일어나지 않으며 오류나 메시지도없고 아무 것도하지 않고 스크립트 만 멈춘다. 내가 발사 경로로 /bin/echo으로 시도하는 경우 사전에 모두

답변

0

에서

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); 

감사는 목표 - C 코드 솔기 나를 위해 잘 작동합니다. 그래서 문제는 스크립트에 있다고 생각합니다. 귀하의 질문에 스크립트를 포함시킬 수 있습니까? Cocoa 응용 프로그램에서 실행될 때의 환경은 대화 형 쉘에서 실행될 때와 상당히 다를 수 있습니다.

+0

제 생각에 문제는 그 스크립트가 컴퓨터에서 파일을 호출하는 것입니다. 아마도 코코아 응용 프로그램에서 파일을 찾지 못했을 것입니다. – Cristian

+1

사람들이 당신을 도울 수 있다면 스크립트에 대한 더 많은 정보를 제공해야합니다. –

+0

스크립트는 내장 된 쉘을 사용하여 인터넷에서 파일을 다운로드 한 다음 ffmpeg를 사용하여 변환 한 다음 mv로 사용자의 홈 디렉토리로 이동합니다. – Cristian

0

권한 문제 일 수 있습니까?/bin/sh를 호출하고 스크립트 경로를 첫 번째 인수로 설정하십시오.

관련 문제