問題タブ [expect]

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 に答える
2867 参照

java - expect4j ライブラリの使用方法に関する実際のドキュメントやコード例はありますか?

Google コード プロジェクト ページのドキュメントはかなり薄いです。expect4jの使用に関する詳細なドキュメントがあるかどうか疑問に思っています。コード例も役立ちます。

0 投票する
3 に答える
6647 参照

linux - Linux tclshでカーソルキーでコマンド履歴を取得する方法

TCL シェル (tclsh) でカーソルキー (上矢印キーなど) を使用してコマンド履歴を取得できます。

Linux バージョン 2.6.21 の fedora で tclsh を実行しています。

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

terminal - 端末を自動的に制御するにはどうすればよいですか?

私は 20 の同一のシミュレーター (vi のようなテキスト ベースの GUI、すぐに更新) を使用しており、非常によく似た方法でそれらを制御する必要があります。たとえば、コマンド文字列を入力して、シミュレーターを開始/停止/構成します。表示は重要であり、端末上で流れるようにする必要があります。現在、それぞれを個別の端末で自動的に開始できます。

しかし、その後、それらを自動的に制御する方法がわかりません。ターミナルなしでexpectを使用してシミュレーターを生成すると、出力を見ることができなくなります。どうすれば進められるか、またはどのツールが役立つかについて何か提案はありますか?

0 投票する
3 に答える
911 参照

multithreading - Tcl では、Expect を必要とする複数のスレッドからのセグ フォールト

ここで興味深いことがあります。を呼び出す Tcl に複数のスレッドがpackage require Expectあると、seg fault が発生します。

例えば

これは良い時期ではありません。何かご意見は?

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

perl - Perl の期待 - ターゲット マシンでタイムアウトを制御する方法

私は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 を使用してリモート マシンでコマンドを実行することです。この場合、タイムアウトに対処する必要はありません。:)

0 投票する
4 に答える
23501 参照

ssh - タイムアウトなしで{}を期待して終了

私はsshでパスワードを自動的に入力するという古典的な問題に苦しんでおり、他のみんなと同じように、私は期待に関して暗闇の中でつまずいています。最後に、私はちょっとうまくいくスクリプトをまとめました:

このスクリプトは、行のおかげで終了します。timeout 1行がないと、単にハングし、ユーザーの操作()によってのみ終了します^C

行が単純なsshコマンドの場合spawn、スクリプトはすぐに終了しましたが、これは単純なsshではありません。異なる可能性があるのは-f、バックグラウンドで実行するオプションです(ただし、スクリプトを使用せずに試してみましたが、役に立ちませんでした)。

私はそれを読んだinteractexpect eof、役立つかもしれませんが、実際にそれを行う正しい呪文を見つけることができませんでした。

私の質問(私は思う)は、バックグラウンドプロセスを生成するexpectスクリプトを、タイムアウトなしで終了させる方法ですか?


編集:「パスワードなしのssh認証を使用する」という答えを期待する必要がありました(しゃれは意図していません)。これは適切なアドバイスですが、私のシナリオでは適切な解決策ではありません。信頼できる環境でバニラがインストールされたシステムを自動テストします。信頼できるキーをイメージに追加することは望ましくない/不可能です。

0 投票する
2 に答える
19064 参照

shell - スクリプトではなく単一行で -c が機能することを期待する方法

ランニング:

私はまだパスワードを求められているので、うまくいかないようです。

ascriptとして実行すると、問題なく実行されます。

これをスクリプトではなく 1 行のコマンドで実行したいと考えています。誰かアイデアはありますか?

前もって感謝します

私は以下の自分の質問に答えました

0 投票する
2 に答える
2614 参照

perl - Expect を使用して SSH に接続するにはどうすればよいですか?

私のプログラムでは、Expectを使用して実行していますssh。私のプログラムは

しかし、スポーンできなくても、ssh印刷されていませんCannot spawn ssh to ip $ssh_ip_address。エラーメッセージが表示される理由を理解していただけますか?

0 投票する
2 に答える
946 参照

linux - Using Expect to administer machines via SSH, but does not complete all tasks

*Please do not pile on and tell me to just use SSH keys. If it bugs you that this is the way I am doing it, pretend that I am trying to telnet in instead. :-) *

I am using an expect script to run some routine commands on a set of servers under my control via ssh. The script should run set of commands (eg svn update ~/folderx\r") on each of the machines. My current script does everything I want it to do... sometimes. Other times it exits the ssh connection before it completes one of the last few commands.

Any thoughts on how I can make the connection stay until all of the commands are completed? The code below successfully logs on, successfully runs the first two commands or so (ap-get update and one of the svn updates) and then disconnects.

#xA;
0 投票する
1 に答える
546 参照

perl - Perlでの期待値の評価

私はPerlでExpectを使用してリモートマシンに接続し、特定の機能を実行しています。サンプルコードは次のようなものです

最初の式が失敗した場合でも、60秒間待機し、2番目のステートメントを実行します。最初のステートメントだけが合格した場合は続行する必要があることを確認したいだけです。