問題タブ [expect.pm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
144 参照

perl - 生成されたプロセスで無限ループから抜け出す方法を期待できますか

具体的な例を挙げて質問させてください。最初のコード nlines.pl は次のとおりです。

$ nlines.pl pp 0.2 はプロンプト "pp> " を生成し、入力 "6" が与えられると、"Hello world" を 0.2 秒間隔で 6 回出力します (間隔が +ve 数値の場合のみ)。数値以外の入力はループから抜け出し、行数に負の数を指定すると無限ループになります。正常に動作します!

ここで、2 番目のスクリプト「expnlines.pl」を上記のスクリプトのドライバーとして考えてみましょう。

これを「expnlines.pl 4 0.2」として実行すると、問題なく動作します。「expnlines.pl -1 0.3」(またはタイムアウトのその他のもの)も機能します。行数の -ve # の場合、最初のスクリプトは無限ループに入りますが、期待によりタイムアウトします。ただし、「expnlines.pl -1 0」は無限ループを停止できず (2 秒後)、このループを中断することを期待する方法がわかりません。

助言がありますか?ティア。

ところで、私の現実の世界では、「nlines.pl」のバイナリに相当するものを制御することはできません。私のスクリプトは「expnlines.pl」で、バイナリのドライバーとして異なる引数で期待を使用しています。子プロセスが無限ループを実行すると、それを検出して停止するメカニズムが必要ですが、その方法がわかりません。応答に感謝します。

0 投票する
1 に答える
1475 参照

perl - Expect を使用して送信されたコマンドの結果を取得する方法

PerlExpectモジュールを使用する場合、send コマンドの出力をキャプチャする必要があります。

puts $expect_out(buffer);シェルまたは Tcl で、以前に実行したコマンドをキャプチャするために使用できることを知っています。

Perl で同じことを行うにはどうすればよいですか?

リモートマシンで以下のコマンドを送信しています:

statsいくつかの変数で出力をキャプチャする必要があります。

0 投票する
1 に答える
343 参照

perl - perl の Expect によるログイン プロンプトの自動化とキャプチャ

Perl でログイン プロンプトを自動化しようとしています。

SSHGetCredentials('login_prompt' => 1)perlのExpect::SSHライブラリの機能であるログインプロンプトを生成するために使用しています

これは私のコードがどのように見えるかです。ここでは、ログインプロンプトを呼び出し、入力されたユーザーIDとパスワードを返すREST::Client->getCredentials()呼び出しを内部的に呼び出します。SSHGetCredentials('login_prompt' => 1)

ここで、ユーザー名またはパスワードが渡されたものであるかどうかを確認したいので、それらをキャプチャして比較したいと思います。

どうすればそれらをキャプチャできますか?

私はこれを試しました:

$valueもなく$exp->expect(1)、値をSTDOUTに出力するだけです。