expect通過對照ASCII編碼代替人手輸入特殊按鈕

   expect 可以代替人手進行一些交互輸入挺好用,但是遇到特殊鍵盤按鈕輸入,例如esc,tab之類就不知如何入手了。其實這些特殊字符,也有一個辦法輸入,就是通過ASCII編碼轉換。


例如

escape(esc)       對應的ASCII碼 033      

TAB                   對應的ASCII碼 011        

backspace(回刪鍵盤) 對應的ASCII碼 010

DEL鍵盤    對應的ASCII碼 177  


詳細的Ascii編碼,請點擊下面的鏈接

http://blog.csdn.net/shendl/article/details/1790964


那麼在expect當中怎麼怎麼做呢?

只要 send "\ASCII碼" 即可


譬如:

要發送esc鍵,就輸入 send "\033"



自虐的例子,通過expect使用vi,在文件/tmp/expect_To_vi.txt輸入Hello world (vi需要使用Esc切換模式)。



#!/usr/bin/expect

spawn /bin/vi /tmp/expect_To_vi.txt

expect "expect_To_vi.txt"

#輸入i,進入編輯模式

send "i"

expect "INSERT"


#輸入內容

send "Hello world"


#輸入esc,進入命令行模式

send "\033"

expect ""


#輸入:,進入末行模式

send ":"

expect ":"

#輸入wq,退出

send "wq\n"

expect "written"





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章