天天看點

expect的簡單應用

先看3個腳本:

1.建立使用者:1.createuser.sh

expect的簡單應用
expect的簡單應用

2.登陸普通使用者:2.login.sh

expect的簡單應用
expect的簡單應用

3.切換其他使用者:su_localuser.sh

expect的簡單應用
expect的簡單應用

實作了:建立一個普通使用者,有普通使用者切換到另外一個普通使用者的功能。

附:linux下安裝expect

expect依賴于tcl/tk,是以在安裝expect之前先安裝tcl/tk。

tcl/tk8.4.16的下載下傳面頁:

軟體包的下載下傳位址:

<a href="http://prdownloads.sourceforge.net/tcl/tk8.4.16-src.tar.gz">http://prdownloads.sourceforge.net/tcl/tk8.4.16-src.tar.gz</a>

檢查系統,看tcl是否已經安裝。

[root@rhel ~]# rpm -qa|grep tcl

已經安裝的情況:

因為expect需要重新編譯後安裝,那麼就需要tcl的開發包。

rpm -ivh --force tcl-devel-8.4.13-3.fc6.i386.rpm

然後将expect-5.43包解開,開始讀install文檔,系統管理者告訴我,不用讀,直接運作 ./configure --help開參數。确實好使,又土了一次 :-( 。

1.首先确定tcl開發包安裝的位置

rpm -qpl tcl-devel-8.4.13-3.fc6.i386.rpm|more

2.然後根據參數,運作./configure

./configure --with-tcl=/usr/lib --with-tclinclude=/usr/include/tcl-private/generic

3.執行

make

4.執行

make install

完成第四步後,expect順利安裝成功。 -

沒有安裝的情況:

第一步,安裝tcl

[[email protected] download]#cd tcl8.4.16/unix/

./configure

安裝之後不要删除源碼包,在安裝expect時需要tcl的頭檔案。

安裝完畢以後,進入tcl源代碼的根目錄,把子目錄unix下面的tclunixport.h copy到子目錄generic中 

第二步,安裝tk

[[email protected] download]#cd tk8.4.16/unix/

第三步,安裝expect

在不提供參數的情況下執行configure報錯:

checking for tcl private headers... checking for tclint.h... no 

configure: error: can't find tcl private headers 

再次運作configure腳本,并指定tcl的頭檔案所在目錄:

[[email protected] expect-5.43]#./configure --with-tclinclude=../tcl8.4.16/generic

腳本運作正常,進行執行make進行編譯

如果make,或是configure有錯誤的話,根據提示,再增加配置參數

編譯過程中未出現錯誤,執行安裝:

配置參數的意思是:

· --with-tcl=/usr/tcl/lib :(我的環境中是/usr/local/lib) 確定配置腳本找到臨時工具目錄中的tcl ,我們不希望它使用主系統中可能存在的tcl.

· --with-x=no : 告訴配置腳本,不要查找 tk (tcl 的 gui 元件) 或 x 視窗系統庫,這兩個都有可能存在于主系統中。

· -with-tclinclude :幫助腳本找到所需要的tcl 頭檔案。

簡單一點就是:

1.安裝tcl8.4.16

 2.安裝tk

 3.安裝expect

轉載請注明出處:http://www.cnblogs.com/haochuang/ 8年it工作經驗,5年測試技術與管理,2年産品與項目管理,曾參與過雲計算\雲存儲\車聯網産品研發工作; 業餘自媒體人,有技術類垂直微信公衆号;如有招聘或求職方面需求,請mail to [email protected] ;或通過 qq:363573922 微網誌:@念槐聚 聯系;