Expect スクリプトを機能させようとしていますが、(正規表現の解析を呼び出すために) -re フラグを使用すると、「timeout」キーワードが機能しなくなったようです。次のスクリプトを実行すると、「ステップ 1 でタイムアウトしました」というメッセージが表示され、次に「ステップ 2 を開始しています」というメッセージが表示され、その後タイムアウトしますが、「ステップ 2 でタイムアウトになりました」というメッセージが表示されず、新しいプロンプトが表示されます。
アイデア?
#!/usr/bin/expect --
spawn $env(SHELL)
match_max 100000
set timeout 2
send "echo This will print timed out\r"
expect {
timeout { puts "timed out at step 1" }
"foo " { puts "it said foo at step 1"}
}
puts "Starting test two\r"
send "echo This will not print timed out\r"
expect -re {
timeout { puts "timed out at step 2" ; exit }
"foo " { puts "it said foo at step 2"}
}