Linux expect的安裝與使用


Expect是在Tcl的基礎上創建的,可以用來做一些Linux下無法做到交互的命令操作,可用於遠程管理服務器。

一、安裝Tcl:

1.下載源碼包:

wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz

2.解壓縮源碼包:

tar xfvz tcl8.4.11-src.tar.gz

3.編譯安裝:

cd tcl8.4.11/unix
./configure --prefix=/usr/tcl --enable-shared
make
make install

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

二、安裝expect:

1.下載源碼包:
wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download

2.解壓源碼包:
tar xzvf expect5.45.tar.gz

3.安裝配置:
cd expect5.45
./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/genericmake
make install

4.建立軟連接:
ln -s /usr/tcl/bin/expect /usr/expect/bin/expect

三、expect語法及示例:

set命令:可以設置變量。

spawn命令:激活一個Unix程序來進行交互式的運行。

send命令:向進程發送字符串。

expect命令:等待進程的某些字符串。expect支持正規表達式並能同時等待多個字符串,並對每一個字符串執行不同的操作。

interact命令:執行完畢把持交互狀態,然后在控制台繼續操作。如果沒有這一句,登陸之后就會退出,而不是留在終端上。

 

示例j腳本test.exp:

#!/usr/bin/expect

set HOST [192.168.11.11 $argv 0]

set PWD [123456 $argv 1]

spawn ssh root@$HOST

expect "*passwrod:"

send "$PWD\r"

expect "*#"

send "echo hello\r"

interact

 

修改權限:chmod 755 test.exp

執行:expect test.exp
————————————————
版權聲明:本文為CSDN博主「lishuzebobo」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u013181216/article/details/83055909


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM