Perlについての質問箱 32箱目
■ このスレッドは過去ログ倉庫に格納されています
0788デフォルトの名無しさん
2007/09/26(水) 23:38:05Expect.pmを使ってsshでログインするときにキーを保存するか聞いてくる場合、
既に保存しててそのままパスワードの入力に移行するとき、
何かしらの理由でタイムアウトしたときでsendの内容を分けたいんだけど
どうやって分岐させればいいか分からない。if文でやろうかと思ったけど
if($exp -> expect($timeout , $(yes/no)?)){
send("yes\n");
}
と書くとマッチしないときでもtimeoutまで待たされるしtimeout書かないと次々に入力されて
使い物にならないしsleepだとマッチした場合も無駄に待つ羽目になるしスマートな書き方が思いつかない。
通常のexpectみたいに
expect "assword: " {send "password\n"} \
"(yes/no)? " {send "yes\n";expect "assword: "; send "password\n"} \
timeout { 〜 }
といった感じでexpectの中だけでプロンプトの内容毎にsendでの出力を分けたりできないの?
■ このスレッドは過去ログ倉庫に格納されています