2010-12-29 2 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); 
} 

Я скопировал это на на UNIX поле, локально это работает нормально, но когда я пытаюсь запустить этот PERL скрипт удаленно с другого ящика с помощью SSH, это не работает.

Я запускаю этот скрипт, используя следующую команду.

ssh [email protected] /tmp/testremote.pl 

Он просто висит на STDIN и ничего не возвращает.

Любая идея, почему это не работает?

+0

Только для того, чтобы быть ясным: '/ tmp/testremote.pl' должен существовать на * удаленной машине *, не так ли? –

ответ

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' 

И если это работает это будет означать, что сценарий Perl отлично, но проблема заключается в вашем Перенаправлении.

+0

Был бы неплохим тестом, если бы не сингл после последней «бла». –

+0

вы правы. Я починил это. –

Смежные вопросы