一、概述

我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。
Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年 开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互功能的软件套件 (Expect [is a] software suite for automating interactive tools)。使用它系统管理员 的可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。 Expect则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。甚至可以实现实现简单的BBS聊天机器人。 :)
Expect是不断发展的,随着时间的流逝,其功能越来越强大,已经成为系统管理员的的一个强大助手。Expect需要Tcl编程语言的支持,要在系统上运行Expect必须首先安装Tcl。
二、Expect工作原理
从最简单的层次来说,Expect的工作方式象一个通用化的Chat脚本工具。Chat脚本最早用于UUCP网络内,以用来实现计算机之间需要建立连接时进行特定的登录会话的自动化。
Chat脚本由一系列expect-send对组成:expect等待输出中输出特定的字符,通常是一个提示符,然后发送特定的响应。例如下面的 Chat脚本实现等待标准输出出现Login:字符串,然后发送somebody作为用户名;然后等待Password:提示符,并发出响应 sillyme。
引用:Login: somebody Password: sillyme
这个脚本用来实现一个登录过程,并用特定的用户名和密码实现登录。
Expect最简单的脚本操作模式本质上和Chat脚本工作模式是一样的。
三、一个例子:
#!/usr/bin/expect -f
set ip [lindex $argv 0 ] //接收第一个参数,并设置IP
set password [lindex $argv 1 ] //接收第二个参数,并设置密码
set timeout 10 //设置超时时间
spawn ssh root@$ip //发送ssh请滶
expect { //返回信息匹配
"*yes/no" { send "yes\r"; exp_continue} //第一次ssh连接会提示yes/no,继续
"*password:" { send "$password\r" } //出现密码提示,发送密码
}
interact //交互模式,用户会停留在远程服务器上面.
运行结果:
root@ubuntu:/home/zhangy# ./test.exp 192.168.1.130 admin spawn ssh root@192.168.1.130 Last login: Fri Sep 7 10:47:43 2012 from 192.168.1.142 [root@linux ~]#
总结
以上就是关于linux下使用expect示例的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
# linux
# expect
# 使用
# 详解
# linux自动化交互脚本expect详解
# Linux expect实现自动登录脚本实例代码
# Linux下使用expect命令编写自动化交互脚本
# expect实现批量修改linux密码脚本分享
# Linux中使用expect脚本实现远程机器自动登录
# linux expect实现登陆远程主机并执行命令示例代码
# 详解Linux使用shell+expect远程登录主机
# Linux自动化交互脚本expect从安装到开发详解
# 是一个
# 可以实现
# 最简单
# 第一个
# 要在
# 第二个
# 已经成为
# 则可
# 套件
# 停留在
# 提供给
# 来实现
# 不断发展
# 本质上
# 工作原理
# 编程语言
# 就使
# 编程工具
# 是一样的
# 有疑问
相关文章:
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何做网站制作流程,*游戏网站怎么搭建?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何快速搭建高效WAP手机网站吸引移动用户?
如何用搬瓦工VPS快速搭建个人网站?
,柠檬视频怎样兑换vip?
如何在香港服务器上快速搭建免备案网站?
建站之星安装后如何自定义网站颜色与字体?
临沂网站制作企业,临沂第三中学官方网站?
如何选择服务器才能高效搭建专属网站?
手机网站制作与建设方案,手机网站如何建设?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
开封网站制作公司,网络用语开封是什么意思?
高端网站建设与定制开发一站式解决方案 中企动力
如何在IIS管理器中快速创建并配置网站?
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何在局域网内绑定自建网站域名?
广州商城建站系统开发成本与周期如何控制?
官网网站制作腾讯审核要多久,联想路由器newifi官网
网站按钮制作软件,如何实现网页中按钮的自动点击?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
建站之星备案是否影响网站上线时间?
如何通过NAT技术实现内网高效建站?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
高性价比服务器租赁——企业级配置与24小时运维服务
如何设计高效校园网站?
Swift中循环语句中的转移语句 break 和 continue
如何安全更换建站之星模板并保留数据?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
Java解压缩zip - 解压缩多个文件或文件夹实例
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何在云主机上快速搭建多站点网站?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
定制建站是什么?如何实现个性化需求?
如何选择高性价比服务器搭建个人网站?
高端建站如何打造兼具美学与转化的品牌官网?
nginx修改上传文件大小限制的方法
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
如何解决ASP生成WAP建站中文乱码问题?
网站制作网站,深圳做网站哪家比较好?
,怎么用自己头像做动态表情包?
在线制作视频网站免费,都有哪些好的动漫网站?
在线教育网站制作平台,山西立德教育官网?
如何在建站之星网店版论坛获取技术支持?
红河网站制作公司,红河事业单位身份证如何上传?
香港服务器租用费用高吗?如何避免常见误区?
*请认真填写需求信息,我们会在24小时内与您取得联系。