「ブロック機能」のリニューアルについて

Rubyでexpectライブラリを利用して、対話的な処理を自動で行おうと思っています。

その場合に、条件文(if文)をどうやって書いていいのか分からず困っています。
※条件文の必要のないサンプルプログラムは検索したところいろいろあったのですが・・・

例えば
spawn("ssh #{hostname}") do
expect(/User \(.*\): /) { |match| user }
expect(/[Pp]assword: /) { |match| pass }
expect(/[\>\$] /) {|match| command }
このcommmandの実行結果がAならば
expect(/A/) {|match| command2 }
そうではなくBならば
expect(/B/) {|match| command3 }
end

ぜひよろしくお願いいたします。

教えて!goo グレード

A 回答 (1件)

expect( /[\>\$] / ){|match| command }


expect( /(A|B)/ ){ |match|
case match[1]
when Aに一致? then command2
when Bに一致? then command3
end
}

――とか。
    • good
    • 0
この回答へのお礼

なるほど。
普通にRubyの文法で対応できますね。。
expectの文法でどう書くのか、みたいに考えていました。

ご回答ありがとうございました。

お礼日時:2009/04/14 00:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

教えて!goo グレード

人気Q&Aランキング