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