Expect是在Tcl基礎上創建起來的,它還提供了一些Tcl所沒有的命令,它可以用來做一些linux下無法做到交互的一些命令操作,在遠程管 理方面發揮很大的作用。 spawn命令激活一個Unix程式來進行互動式的運行。 send命令向進程發送字元串。 expect 命令等待進程的某些字元串。 exp ...
Expect是在Tcl基礎上創建起來的,它還提供了一些Tcl所沒有的命令,它可以用來做一些linux下無法做到交互的一些命令操作,在遠程管 理方面發揮很大的作用。 spawn命令激活一個Unix程式來進行互動式的運行。 send命令向進程發送字元串。 expect 命令等待進程的某些字元串。 expect支持正規表達式並能同時等待多個字元串,並對每一個字元串執行不同的操作. 1.tcl安裝 下載地址:http://www.tcl.tk/software/tcltk/download.html 安裝方法:tar zvxf tcl8.6.6-src.tar.gz cd tcl8.6.6/unix ./configure --prefix=/usr/tcl --enable-shared make && make install cp tclUnixPort.h ../generic/ 2.expect 安裝 下載地址:https://sourceforge.net/projects/expect/?source=typ_redirect 安裝方法:tar zvxf expect5.45.tar.gz cd expect5.45 ./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.6.6/generic/ make && make install ln -s /usr/tcl/bin/expect /usr/expect/bin/expect cp /usr/tcl/bin/expect /usr/bin/ 3.使用案例: #/bin/bash auto_scp() { expect -c "set timeout -1; spawn scp -o StrictHostKeyChecking=no $2 ${@:3}; expect *assword:*; send -- $1\r; expect eof; exit;"; } auto_scp 111111 [email protected]:/home/ubuntu/a.xls /home/;