0

私のプログラムでは、Expectを使用して実行しています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。エラーメッセージが表示される理由を理解していただけますか?

4

2 に答える 2

1

Expect を直接使用する代わりに、Net::SSH::Expect (Expect との SSH 対話をラップする) またはNet::OpenSSH (Expect を使用せず、使用しないようにアドバイスする) のいずれかを実行します。また、常にstrictとwarningを使用してください。

于 2010-07-09T18:10:47.060 に答える
1

まず、$argument宣言に二重引用符を使用しました。これは、変数がその内容で補間されることを意味します。@10配列の内容に対して評価され@10ます。補間を避けるために単一引用符を使用します。

そして、常にuse strict; use warnings;すべての Perl モジュール、プログラム、およびスクリプトの先頭に含めることを忘れないでください。これにより、多くの隠れたエラーから解放され、多くの頭痛の種になります。:)

それ以上のことについては、実行している実際のコードを投稿する必要があります。

于 2010-07-09T16:14:27.180 に答える