2011-04-01 1 views
0

커맨드 라인에서 명령으로 내 perl 스크립트를 호출하고 싶습니다. 예 내가 파일 이름을 다음쉘 명령으로 펄 스크립트 호출하기

#!/bin/sh 
    eval 'exec /bin/perl –x -S $0 ${1+"[email protected]"}' 
    if 0; 
#!/usr/local/bin/perl -w 
@args =("mvn","package"); 
    system(@args) == 0 
    or die "system @args failed" 

다음과 내가 바로 일을 package.pl

내가 노력

를 사용하여이 전화하지

#!/usr/local/bin/perl -w 
@args =("mvn","package"); 
    system(@args) == 0 
    or die "system @args failed" 

을 다음과 같은 펄 파일을 가지고 말할 수 '패키지 '. 패키지의 chmod를

패키지를 실행하려고하면 "perl 스크립트 []을 열 수 없습니다. x : 해당 파일 또는 d가 없습니다. ireland

누군가가 이것을 올바르게하는 방법에 관해서 나를 지적 해 주시겠습니까 ??

감사

Neeraj는

+0

작은 따옴표가 아닌 평가판에 큰 따옴표를 사용해야합니다. –

+3

당신의 펄 파일은'.pl'로 끝나지 않아도됩니다 : 펄은 상관하지 않습니다. 단지'#!/usr/local/bin/perl -w'를'package'라는 파일의 상단에 사용하십시오. 파일 이름 접미사는 실제로 DOS/Windows의 것입니다. –

+0

여전히 같은 오류가 발생합니다. – Neeraj

답변

2

변경 :

./package 
+1

또는 * 별명 *, 만약 당신이 * NIX에 있다면. – Axeman

2

변경된 단일 따옴표로 인용 및 내부 따옴표를 탈출했다. 또한 경로에 문제가있는 것으로 보입니다. 절대 경로로 스크립트를 호출 해보십시오. 나는 "./"를 추가 시도하고 일 :

cp package.pl package 
chmod +x package 

실행이 :

package 

또는를 사용하고 실행하게 할 이름에

#!/bin/sh 

echo "This is shell" 

eval "exec /usr/bin/perl -x -S ./$0 ${1+\"[email protected]\"}" 
    if 0; 

#!/usr/bin/perl -w 
print "This is Perl\n";