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