現在、「SalVhugoV3」に関心のある SNMP ユーザーを持つ以下のメニュー応答から行番号を抽出するスクリプトがあります。
青色のメニュー応答は次のとおりです
SNMP ユーザーを選択します: 1) cmssnmp 2) atlas 3) SalVhugoV3 選択肢を入力します (1-3):
スクリプトのこの作業セクションは、「SalVhugoV3」を含む文字列を探し、探しているユーザーのオプションであるため、オプション #3 を取り除きます。次に、「選択を入力してください」プロンプトの snmpuserChoice として「3」を送信します。
リスト/メニューから V3 ユーザーを選択し、$V3USER を grep してその番号を送信します
expect -re ".*\\(.*\\):" {
append rawOut $expect_out(buffer)
regexp { .*(([0-9])\) [puts $V3USER].*) } $expect_out(buffer) cmdOut snmpUser snmpUserChoice
exp_send -- "$snmpUserChoice\r"
}
私は同じことをしようとしていますが、この拡張応答では、この場合に探しているユーザーのオプションは、文字列の末尾に「SalVhugoV3」が含まれているため、オプション「5」であることがわかります。これが「regexp { . (([0-9])) [$V3USER を挿入]。) } 「しかし、オプション「5」番号を取得して「exp_send」経由で送信できるようにするための変更方法は正確にはわかりません。
削除する SNMP 接続を選択します。1) NMS への接続: ホスト 135.9.60.143、ポート 162、ユーザー cmssnmp 2) SAL への接続: ホスト 135.9.158.252、ポート 162、ユーザー cmssnmp 3) SAL への接続: ホスト 135.9.158.236、ポート 162、ユーザー cmssnmp 4) NMS への接続: ホスト 135.105.6.67、ポート 162、ユーザー アトラス 5) SAL への接続: ホスト 135.60.25.147、ポート 162、ユーザー SalVhugoV3 選択肢 (1 ~ 5) を入力します。
リスト/メニューから V3 ユーザーを選択し、$V3USER を grep してその番号を送信します
expect -re ".*\\(.*\\):" {
append rawOut $expect_out(buffer)
regexp { .*(([0-9])\) [puts $V3USER].*) } $expect_out(buffer) cmdOut snmpUser snmpUserChoice
exp_send -- "$snmpUserChoice\r"
}