怎么用TCL/EXPECT腳本實(shí)現telnet批處理?
??一個(gè)簡(jiǎn)單的TCL/EXPECT腳本,完成telnet到遠程設備的功能。通過(guò)這個(gè)例子,大家可以看到使用TCL/EXPECT腳本構造測試程序,是非常簡(jiǎn)潔的。從今天開(kāi)始,陸續把我所寫(xiě)的一些自動(dòng)測試腳本貼上來(lái),希望對初學(xué)者有所幫助。由于目前沒(méi)有找好合適的服務(wù)器存放代碼,所以代碼先貼在blog的正文中,以后再提供完整的代碼下載。
??我telnet批處理測試腳本運行在debian linux下,使用/usr/bin/expect進(jìn)行解釋執行。為了簡(jiǎn)化處理,把一些常用的功能編寫(xiě)成函數,放在commonLib。exp文件中,其它腳本文件可以使用source commonLib。
??exp命令引用這些函數。下面的函數完成telenet到目標機器并login。從其實(shí)現上大家可以看到tcl/expect編寫(xiě)測試腳本的簡(jiǎn)潔。這個(gè)函數帶有三個(gè)參數,分別是目標機器的IP地址ipaddr,登錄用戶(hù)名user和登錄密碼,telenet的端口號采用默認的23端口。
??函數中使用了三個(gè)全局變量,g_prompt,g_usrPrompt和g_pwdPrompt,分別表示登錄后的命令提示符,提示用戶(hù)名輸入的提示符,以及提示密碼輸入的提示符,這三個(gè)全局變量定義在global。exp中。之所以采用全局變量,是因為這些值使用比較廣泛,但在不同設備中都不相同。
??使用全局變量可以方便修改。