Linux运维中Expect解析?北京老男孩教育

    2018-06-29发布, 次浏览 收藏 置顶 举报
  • 上课班制:

    全日制

  • 授课时间:

    学习时间:早8点半到晚10点

  • 授课对象:

    0基础,对Linux运维感兴趣,年满18周岁

  • 网报价格:电询    课程原价:电询
  • 咨询热线:400-998-6158
  • 授课地址:北京市昌平区沙河镇松兰堡村
  • 课程详情

  • 机构简介
  • 地图信息
  • 预约试听

课程关键词:Linux运维培训 Linux云计算培训 北京Linux培训

2018年8月1日,老男孩教育骑士计划正式推出,仅在深圳校区发布,致力于为各互联网名企专向定制人才,只讲干货、不玩虚的,大量企业真实项目实战,十万行代码毕业标准,挖出一条进入BAT的新通道。


Expect中的特殊关键字用于匹配过程,代表某些特殊含义或状态,一般用于 expect 族命令中而不能在外面单独使用,也可以理解为事件,使用上类似于:

expect eof { }

一、eof

eof(end-of-file)关键字用于匹配结束符,比如文件的结束符、FTP 传输停止等情况,在这个关键字后跟上动作来做进一步的控制,特别是 FTP 交互操作方面,它的作用很大。用一个例子来看看:

swawn ftp anonymous@10.11.15.105.110

expect {

“password:” {exp_send “who am i”}

eof {ftp connect close}

}

interact {}


二、timeout

timeout是expect中的一个重要变量,它是一个全局性的时间控制开关,你可以通过为这个变量赋值来规定整个expect操作的时间,注意这个变量时服务于expect全局的,它不会纠缠于某一条命令,即时命令没有任何错误,到事件仍然会被集火这个变量,但这个时间达到以后除了激活一个开关之外不会做其他的事情,如何处理是脚本编写人员的事情,看看它的实际使用方法:

set timeout 60

spawn ssh root@172.16.1.31

expect “password:” {send “word\r”}

expect timeout {puts “exoect wai timeout”; return}

上面的处理中,首先将timeout设置为60秒,当出现问题的时候程序可能会停止下来,只要到60秒,就会激活下面的timeout动作,这里我打印一个信息并停止了脚本的运行。(例子是打印信息并且停止了脚本的运行,这里可以根据自己的需求或思路,规定相关动作)

在另一种expect格式中,我们还有一种设置timeout变量的方法,看看下面的例子:

spawn ssh root@172.16.1.31

expect {

-timeout 60

-re “password:” {exp_send “word\r”}

-re “Topsecos#” { }

timeout {puts “Expect was timeout”; return}

}

在expect命令中间加上一个小横杠,也可以设置timeout变量

timeout变量中,设置为0表示立即超时,-1则表示永不超时

expect {

-timeout 20

“yes/no” {send “yes\r”; exp_continue}

“password” {send “$password\r”}

timeout {puts “expect connect timeout,pls contact oldboy.”; return}

}

更多培训课程,学习资讯,课程优惠等学校信息,请进入 北京老男孩教育 网站详细了解,免费咨询电话:400-998-6158

预约试听
  • 姓名: *
  • 性别:
  • 手机号码: *
  • QQ:
  • 微信:
  • 其它说明:
  • 验证码: *  看不清,请点击刷新
相关课程