2010-12-29 7 views
1

다음 perl 스크립트가 있습니다.ssh 명령이 perl 스크립트를 실행하지 않습니다.

#!/usr/bin/perl 
$userinput = <STDIN>; 
chomp ($userinput); 
while ($userinput ne "DONE") 
{ 
     print STDOUT "User typed -----> $userinput\n"; 
     $userinput = <STDIN>; 
     chomp ($userinput); 
} 

이 패키지는 유닉스 박스에 복사했는데 로컬에서는 잘 작동하지만 ssh를 사용하는 다른 상자에서이 perl 스크립트를 원격으로 실행하려고하면 작동하지 않습니다.

다음 명령을 사용하여이 스크립트를 실행하고 있습니다.

ssh [email protected] /tmp/testremote.pl 

그냥 STDIN에 매달려 아무것도 반환하지 않습니다.

이것이 작동하지 않는 이유는 무엇입니까?

+0

분명히 :'/ tmp/testremote.pl'이 * remote * 시스템에 존재해야합니다 - 그렇지 않습니까? –

답변

5

#! 뒤에 $|=1;을 추가하십시오. 선.

+0

감사합니다. – Avinash

0
ssh [email protected] '/tmp/testremote.pl' 

작은 따옴표를 명령에 추가하십시오.

+2

그건 아무것도 안할거야. –

+1

ssh로 보내지는 명령에 쉘 보간이 필요한 경우에만 도움이됩니다. –

2

터미널의 STDIN은 아마도 원격 터미널로 올바르게 리디렉션되지 않습니다.

ssh [email protected] 'echo bla bla bla | /tmp/testremote.pl' 

을 그리고이 작품 경우는 펄 스크립트는 괜찮지 만, 문제가 재 것을 나타냅니다 :

당신은 시도 할 수 있습니다.

+0

마지막 "bla"다음에 작은 따옴표가 없으면 좋은 테스트가 될 것입니다. –

+0

네 말이 맞아. 나는 그것을 고쳤다. –

관련 문제