Shell脚本之Expect免交互

Expext概述

Expect是建立在tcl基础上的一个工具,Expect是用来自动化控制和测试的工具。主要解决shell脚本中不可交互的问题。有助于大规模的系统运维工作。在日常的运维与开发中,常常需要运城登录到服务器,然而登录的过程却是个需要交互的过程,可能会要输入yes/no等信息,使用Expect脚本即可实现免交互操作。



Expect安装

挂载光盘
制作本地YUM源
执行安装命令
yum install expect -y



基本命令

send

向进程发送字符串,用于模拟用户的输入,该命令不能自动回车换行,一般要加\r (回车)。


expect

expect的一个内部命令,判断上次输出结果里是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回。只能捕捉由spawn启动的进程的输出。


spawn

启动进程,并跟踪后续交互信息


interact

执行完成后保持交互状态,把控制权交给控制台


Timeout

指定超时时间,过期则继续执行后续指令
单位:秒
timeout -1 为永不超时
默认的timeout是10秒


exp_continue

允许expect继续向下执行指令


send_user

回显命令,相当于的echo输出


$arvg 参数数组

Expect脚本可以接受从bash传递的参数。可以使用[lindex $arvg n]获得,n从0开始,分别表示第一个,第二个,第三个为参数…参数


Expect脚本必须以interact或expect ecof结束,执行自动化任务通常expect eof就够了

expect eof实在等待结束标志。由spawn启动的命令在结束时会产生一个eof标记,expect eof即在等待这个标记



Expect语法

单分支语法

expect "passwd:" {
   
   send"mypasswd\r";}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值