expect是一個免費的編程工具語言,用來實現自動和交互式任務進行通信,而無需人的干預。使用它系統管理員 的可以創建腳本用來實現對命令或程序提供輸入,而這些命令和程序是期望從終端(terminal)得到輸入,一般來說這些輸入都需要手工輸入進行的。 expect則可以根據程序的提示模擬標準輸入提供給程序需要的輸入來實現交互程序執行。expect是建立在tcl基礎上的一個工具,它還提供了一些tcl所沒有的命令,它可以用來做一些linux下無法做到交互的一些命令操作,在遠程管理方面發揮很大的作用。
因為expect是基于tcl的,所以需要你的系統中安裝有tcl。
如何檢查?
[root@dev?~]#?whereis?tcl???? tcl:?/usr/lib/tcl8.4?/usr/share/tcl8.4
如果看不到結果,請先安裝tcl
> 安裝tcl
下載tcl安裝包,然后解壓tcl安裝包(centos系統下可以直接使用yum install tcl; ubuntu系統下可以直接使用apt-get install tcl命令來快速安裝)
主頁: http://www.tcl.tk
下載地址: http://www.tcl.tk/software/tcltk/downloadnow84.tml
1.下載源碼包
?[root@dev ~]# wget?http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz ? ?
2.解壓縮源碼包
?[root@dev ~]# tar xfvz tcl8.4.11-src.tar.gz ? ?
3.安裝配置
?[root@dev?~]#?cd?tcl8.4.11/unix???? ?[root@dev?~]#?./configure?--prefix=/usr/tcl?--enable-shared???? ?[root@dev?~]#?make???? [root@dev?~]#?make?install
安裝完畢以后,進入tcl源代碼的根目錄,把子目錄unix下面的tclUnixPort.h copy到子目錄generic中。
暫時不要刪除tcl源代碼,因為expect的安裝過程還需要用。
> 安裝expect
主頁: http://expect.nist.gov/
下載源碼包
[root@dev?~]#?wget?http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download
2.解壓縮源碼包
[root@dev?~]#?tar?xzvf?expect5.45.tar.gz
3.安裝配置
?[root@dev?~]#?cd?expect5.45???? [root@dev?~]#?./configure?--prefix=/usr/expect?--with-tcl=/usr/local/tcl/lib?--with-tclinclude=/opt/tcl8.4.11/generic/?--enable-shared???? [root@dev?~]#?make???? ?[root@dev?~]#?make?install
注意:指定的 /opt/tcl8.4.11/generic/ 為我們上面解壓的tcl目錄
> 創建連接符號
[root@dev ~]# ln -s /usr/local/expect/bin/expect /usr/bin/expect ? ?
> 查看連接符號
?[root@dev?~]#?ls?-l?/usr/bin/expect???? lrwxrwxrwx.?1?root?root?28?9月???8?11:21?/usr/bin/expect?->?/usr/local/expect/bin/expect
這個符號鏈接將在編寫expect腳本文件時用到,例如在expect文件頭部會指定用于執行該腳本的shell
#!/usr/bin/expect
> 測試
[root@dev?~]#?expect???? expect1.1>?exit???? ?[root@dev?~]#
這樣就可以開始運行expect腳本了。