Как мне использовать Expect для соединения с SSH? - PullRequest
0 голосов
/ 09 июля 2010

В моей программе я использую Ожидать для запуска ssh.Моя программа

$argument="root@10.2.2.2";
$exp->spawn("ssh $argument") or die "Cannot spawn ssh to ip $ssh_ip_address\n";

Но даже если она не может порождать ssh, она не печатает Cannot spawn ssh to ip $ssh_ip_address.Не могли бы вы помочь мне понять, почему он выдает сообщение об ошибке?

Ответы [ 2 ]

1 голос
/ 09 июля 2010

Вместо непосредственного использования Expect, запустите либо Net :: SSH :: Expect (который включает взаимодействие SSH с Expect), либо Net :: OpenSSH (который не использует Ожидайте и советуйте против этого). Также всегда используйте строгие и предупреждения.

1 голос
/ 09 июля 2010

Прежде всего, вы использовали двойные кавычки для вашего объявления $argument, что означает, что переменные будут интерполированы в его содержимом. @10 будет оцениваться по содержимому массива @10. Используйте одинарные кавычки, чтобы избежать интерполяции.

И помните, всегда всегда включают use strict; use warnings; в верхней части каждого Perl-модуля, программы и скрипта. Это избавит вас от множества скрытых ошибок и, следовательно, от головной боли. :)

Более того, вам нужно будет опубликовать действительный код, который вы запускаете.

...