Expect自動化控制和測試的軟件工具
Expect是Unix系統(tǒng)中用來進行自動化控制和測試的軟件工具,由Don Libes制作,作為Tcl腳本語言的一個擴展,應(yīng)用在交互式軟件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等。該工具利用Unix偽終端包裝其子進程,允許任意程序通過終端接入進行自動化控制;也可利用Tk工具,將交互程序包裝在X11的圖形用戶界面中。
Expect含有利用正則表達式進行模式匹配以及通用的編程功能,允許簡單的腳本智能地管理如下工具:telent,ftp和ssh(這些工具都缺少編程的功能),宏以及其它程序。Expect腳本的出現(xiàn)使得這些老的軟件工具有了新的功能和更多的靈活性。
一個簡單的腳本程序例子就能實現(xiàn)自動的telnet會話:
# 假定 $remote_server, $my_user_id, $my_password, 和$my_command 已經(jīng)讀入。 # 向遠程服務(wù)器請求打開一個telnet會話,并等待服務(wù)器詢問用戶名 spawn telnet $remote_server expect "username:" # 輸入用戶名,并等待服務(wù)器詢問密碼 send "$my_user_id\r" expect "password:" # 輸入密碼,并等待鍵入需要運行的命令 send "$my_password\r" expect "%" # 輸入預(yù)先定好的密碼,等待運行結(jié)果 send "$my_command\r" expect "%" # 將運行結(jié)果存入到變量中,顯示出來或者寫到磁盤中 set results $expect_out(buffer) # 退出telnet會話,等待服務(wù)器的退出提示EOF send "exit\r" expect eof
評論
圖片
表情
