首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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命令,如图:

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210215A06Z7Z00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券