怎么用TCL/EXPECT腳本實(shí)現telnet批處理?

4年前 (2020-12-16)閱讀426回復0
訪(fǎng)客
訪(fǎng)客
  • 管理員
  • 發(fā)消息
  • 注冊排名3
  • 經(jīng)驗值65770
  • 級別管理員
  • 主題13152
  • 回復5
樓主

??一個(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中。之所以采用全局變量,是因為這些值使用比較廣泛,但在不同設備中都不相同。

??使用全局變量可以方便修改。

0
0
收藏0
回帖

怎么用TCL/EXPECT腳本實(shí)現telnet批處理? 期待您的回復!

取消
載入表情清單……
載入顏色清單……
插入網(wǎng)絡(luò )圖片

取消確定

圖片上傳中
編輯器信息
提示信息