私はしばらく SSH2 モジュールを使用してきましたが、非常にうまく機能することがわかりました。私がいつも難しいと思うのは、返されたデータがいつ完了したかを伝えることです。たとえば、インターネット全体で見つけたこのコード
my $ssh2 = new Net::SSH2();
$ssh2->connect('127.0.0.1') or die $!;
$ssh2->auth_password('bob', 'smith');
if(!$ssh2->auth_ok()) { die $!; }
my $channel = $ssh2->channel();
$channel->shell();
print $channel "ls -l\n";
while(<$channel>)
{
print $_;
}
これは、最後の行が返されるとすぐに戻るため、ストリームの終わりに到達したことを「認識」しているようです。私が知りたいのは、データが終了したことをどのように知るかです。プロンプトが返されないので、プロンプトを探していると思います。他の何かがプロンプトのような文字列を返したらどうなるでしょうか? 止まりますか?