Expectを使えるか試してみようと「sed」と対話するスクリプトを作った結果・・・
●スクリプト #!/bin/expect -f spawn sed -e "s/Q/A/g" set timeout 1 send -raw "Q\n" expect { -re "A" {puts "OK!"} } send -raw "Q\n" expect { -re "Q" {puts "No Change!"} } send -raw "Q\n" expect { -re "B" {puts "Wrong!"} } close exit●結果 spawn sed -e s/Q/A/g Q A OK! Q No Change! A Q Aなぜに、sendした文字も拾ってるんだーーーー。orz PR |
これじゃNG?(@_@:
#!/usr/bin/expect -f spawn sed -e "s/Q/A/g" set timeout 1 log_user 0 send -raw "Q\n" expect { -re "A" {puts "OK!"} } send -raw "Q\n" expect { -re "Q" {puts "No Change!"} } send -raw "Q\n" expect { -re "B" {puts "Wrong!"} } log_user 1 close exit ---- spawn sed -e s/Q/A/g OK! No Change! ---- |
sendってsedに標準入力に送ってると思ってたのにexpect_out(buffer)(=sedからの標準出力)にも入っている・・・
皆、この意図で使ってるもんなのかな? Expect→"Q"→「sed -e s/Q/A/g」 答え待ち←"A"← OK! Expect→"Q"→「sed -e s/Q/A/g」 答え待ち←"Q"← No Change! ↑ Qが投げられてAになってないからNGであります! やはり同じこと考える人はいるね。 http://wiki.tcl.tk/17378
【2015/05/06 21:56】| | nwpfh #53232e62cd [ 編集 ]
|
|
忍者ブログ [PR] |