忍者ブログ
  • 2017.09
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 2017.11
期待できないExpect
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
【2015/05/05 16:49 】 | linux | 有り難いご意見(2)
                                    
<<LocalOnWrite on PowerShell | ホーム | 問題の種>>
有り難いご意見
無題
これじゃ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!
----
【2015/05/06 21:15】| URL | ゼンガイチ #9b12d92c27 [ 編集 ]


無題
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 [ 編集 ]


貴重なご意見の投稿














<<前ページ | ホーム | 次ページ>>