私はperlの初心者です。リモートシステムにスポーンするためにperlのexpectモジュールを使用しています。send モジュール ($exp->send("my command as string going here\n" など) を使用して一連のコマンドを次々と実行します。問題は、実行するコマンドの処理に時間がかかることです。コマンド終了リモート マシンがタイムアウトになり、ホスト マシンのプロンプトに戻ります.これを処理する方法を教えてください。
もう1つ質問があります。実行後に2つの値を返すコマンドがあります(リモートマシンで2つの値を出力しているとします)。これら 2 つの値を取得し、send モジュールを使用して次のコマンドに引数として渡したいと考えています。これを行うにはどうすればよいですか。
Plsはこの問題で私を助けてくれます.
ありがとう。
期待モジュールについて何かを見つけました。$exp->expect(undef) のように、expect で使用できる undef オプションがあります。これは無期限に待機し、すべてのコマンドが処理を終了できるようにします。しかし問題は、制御をホスト マシンに戻さないことです。expect を eof で使用するオプションがもう 1 つあります。これは、eof に遭遇するまで待機してから、ホスト マシンに戻ります。正確な使い方はわかりませんが。私が見つけた洗練された解決策は、expect を使用するのではなく、ssh を使用してリモート マシンでコマンドを実行することです。この場合、タイムアウトに対処する必要はありません。:)