16

たとえば、prompt1、prompt2、prompt3 の 3 つのプロンプトを持つ test.sh 用の Expect スクリプトを作成しようとしているとします。

私のコードは次のようなものです:

spawn test.sh
expect "prompt1"
send "pass1"
expect "prompt2"
send "pass2"
expect "prompt3"
send "pass3"

ただし、prompt2 は半分の時間しか発生しません。prompt2 が表示されない場合、expect スクリプトが壊れます。表示されない場合、prompt2 をスキップするコードをどのように記述すればよいでしょうか?

編集:

私のコードを修正しました:

/usr/bin/expect -c '
spawn ./test.sh
expect {
      "prompt1" {
          send "pass1\r"
          exp_continue
      }
      "prompt2" {
          send "pass2\r"
          exp_continue
      }
      "prompt3" {
          send "pass3\r"
          exp_continue
      }
}
interact return
'

このようにして、残りのスクリプトが実行され、出力が提供されます。

4

2 に答える 2