shell中expect语句

1.什么是expect语句

expect语句是自动应答命令用于交互式命令的自动执行
spawn是expect中的监控程序,其运行后会监控命令提出的交互问题
send发送问题答案给交互命令
exp_continue 表示当问题不存在时,继续回答下面的问题
expect eof表示问题回答完毕后退出expect环境
interact表示问题回答完毕后留在交互界面
set NAME [ lindex $argv n ] 定义在expect环境中的变量

例:
编写一个提出问题的脚本
在这里插入图片描述
执行脚本时,可以交互
在这里插入图片描述
再编辑一个回答问题的脚本,使当调用该脚本时,会自动通过重定向去对应答案
在这里插入图片描述
在这里插入图片描述
再次编辑提出问题的脚本,然后去掉中间的一个问题
在这里插入图片描述
再次调用回答问题的脚本时,会对应错乱,没有识别问题的有无
在这里插入图片描述
解决办法
可以编辑一个exp自动灵活回答问题的脚本

环境是#!/usr/bin/expect
在expect环境下定义变量的方式 [ lindex $argv 0 ]表示后跟的第一串字符,以此类推
spawn 监控问题
expect {}中的是发送的答案
expect eof 执行完后退出当前的expect环境
interact表示回答完问题停留在交互界面
还可以设定多久之后退出expect环境 set timeout 5则为5秒后退出

在这里插入图片描述
执行脚本.exp
在这里插入图片描述发现,虽然之前将一行问题注释掉了,但是脚本自动跳过了那条问题,现在将那条问题恢复,然后再次执行,发现又对应上了。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值