linux命令之expect用法

在日常使用Linux系统中,经常会碰到需要与系统进行交互的情况,此时expect就可以派上用场了,expect命令可以实现人机交互,无需人工操作,通过expect即可实现自动交互。

expect主要参数说明如下:

spawn 交互程序开始后面跟命令或者指定程序

expect 获取匹配信息匹配成功则执行expect后面的程序动作

send exp_send 用于发送指定的字符串信息

exp_continue 在expect中多次匹配就需要用到

send_user 用来打印输出 相当于shell中的echo

exit 退出expect脚本

eof expect执行结束 退出

set 定义变量

puts 输出变量

set timeout 设置超时时间

interact        允许用户交互

安装expcet:

环境准备: centos7

1、直接通过yum来安装,可以执行命令如下:

yum -y install expect tcl

2、通过软件包的方式进行安装:

由于expect是基于tcl的基础上创建的,因此需要先安装tcl

首先下载tcl安装包,可以执行命令如下:

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

下载完成后解压软件,执行命令如下:

进入解压后的目录中,执行编译安装,命令如下:

cd tcl8.4.11/unix

./configure –prefix=/usr/local/tcl –enable-shared

make && make install

安装完成后,进入源代码目录,将unix下面的tclUnixPort.h拷贝到上一级目录的generic目录中,如图:

接下来安装expect,可通过wget命令下载此安装包,命令如下:

wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download

解压软件包,并进入解压目录,执行命令如下:

执行命令进行编译安装,命令如下:

./configure –prefix=/usr/local/expect –with-tcl=/usr/local/tcl/lib –with-tclinclude=../tcl8.4.11/generic

make && make install

注意:上方的编译安装的时候关联了tcl的源代码目录以及安装目录

安装完成后创建软连接,执行命令如下:

ln -s /usr/local/tcl/bin/expect /usr/bin/expect

在命令行输入expect后可以看到弹出如下图所示:

至此:expect安装完成。

例子1:下面的脚本实现的功能是自动修改root密码,本脚本以bash脚本为基础,添加expect命令,如图:

linux命令之expect用法

从上图可以看到,首先定义密码变量,spawn参数表示执行后面的命令,expect表示当匹配到指定字符串的时候,通过send发送指定,eof表示expect执行结束,退出,r表示回车

例子2:下面的函数实现的功能是对磁盘进行分区,在shell脚本中调用函数即可,如图:

linux命令之expect用法

来源:OnlineIT

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月13日
下一篇 2021年1月13日

相关推荐