3

リモートの Linux ホストでテキスト ベースのメニューを実行しています。私はこのホストに ssh するために expect を使用しており、メニューを操作する方法を理解したいと考えています。対話には、上下の矢印キーと、Enter および Back 矢印キーの使用が含まれます。例えば、

Disconnect
Data Collection >
Utilities >
Save Changes

システムに入ると、切断が強調表示されます。したがって、Enter キーを 2 回押すだけで、システムから切断できます。2 回目の入力で切断が確認されます。

次のコードは、私のシステムに SSH 接続し、メニューを表示します。Expect eof を削除して、これが [切断] メニュー オプションを選択することになると考えて "\r" を送信しようとすると、次のエラーが表示されます。

#!/usr/bin/expect
set env(TERM) vt100

set password abc123
set ipaddr 162.116.11.100

set timeout -1
match_max -d 100000

spawn ssh root@$ipaddr
exp_internal 1
expect "*password:*"

send -- "$password\r"
expect "Last login: *\r"

expect eof

私は virterm と term_expect の例を見てきましたが、それらを微調整して私のために働く方法がわかりません。誰かが私を正しい方向に向けることができれば、私はそれを大いに感謝します. 私が知る必要があるのは、テキストベースのメニューシステムとやり取りできるか、これを行うための正しい方法は何か、存在する場合の例は素晴らしいでしょう.

ありがとう、レーガン

4

3 に答える 3

1

ツールを使用してautoexpect対話型セッションを記録し、コードがどのように見えるかを確認してください。

于 2010-03-17T13:07:48.840 に答える
1

作業を簡素化するために、公開鍵暗号化をセットアップして、パスワードを使用せずにリモート ホストに ssh できるようにすることをお勧めします。その後、ssh の代わりにソフトウェアのテストに集中できます。詳細については、Google の「パスワードなしの ssh ログイン」を参照してください。あなたが見つける指示は簡単ですので、恐れることはありません.

于 2010-03-22T05:32:32.230 に答える
0

\ n \ n \ rを試しましたか?

于 2010-04-23T20:29:13.203 に答える