expect工具的简单用法
原创文档,转载请注明作者与本文URL。
linux中的expect工具很不错,能够自动实现交互,也即是说自己自动进行ssh登录等动作。这是我写的一个简单的用法,稍作修改就可以变成很实用都脚本。有人介绍的很详细,我就直接上脚本了。
#!/usr/bin/expect -f
#用expect实现自动交互
#期望的字符串必须出现,而且必须按顺序出现,send记得带上换行符 #指定要启动的命令,可以带参数
spawn ./hello.sh v1 v2
#可以设置超时,默认的超时就是10秒
set timeout #一问一答的节奏,expct期望一个字符串,然后send回应一个字符串
expect "(yes/no)"
send "yes\r"
expect "password:"
send "no-password\n"
#期望的字符串是正则匹配的,发送要记得换行符,\r和\n都行
expect "*num"
send "1\n"
#等着命令结束后退出
expect eof
代码保存为一个脚本,例如 a.sh,加上执行执行权限后 ./a.sh 即可运行。
todo:有个地方讲了\r \n的区别,以后补上。
原创文档,转载请注明作者与本文URL。
expect工具的简单用法的更多相关文章
- 内存使用分析工具Valgrind简单用法
转载自 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html 暂时还未使用过,记录下,记录下,记录下 Valgrind的主要作者 ...
- centos 6.5下安装nmap工具及简单用法
Nmap是一款针对大型网络的端口扫描工具,被广泛应用于黑客领域做漏洞探测以及安全扫描,其主要功能有主机发现(Host Discovery). 端口扫描(Port Scanning). 版本侦测(Ver ...
- java intellij 工具的简单用法
一.目录结构 1.新建项目(Empty Project) -> 新建module(可以有多个) => 出来src文件夹 -> 在src文件夹中新建package -> 在pa ...
- shell expect的简单用法【转】
用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: ######## ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
- slf4j的简单用法以及与log4j的区别
之前在项目中用的日志记录器都是log4j的日志记录器,可是到了新公司发现都是slf4j,于是想着研究一下slf4j的用法. 注意:每次引入Logger的时候注意引入的jar包,因为有Logger的包太 ...
- EMCA和EMCTL的简单用法
背景 其实这两个完全是两回事,不过倒是有关系,emca就是建立的资料库,建立后就用emctl来管理服务了.oem有问题基本都是重建emca,然后用emctl来操作. 当时用emca感觉真是一阵空白,太 ...
- HttpURLConnection和HttpClient的简单用法
HttpURLConnection的简单用法:先通过一个URL创建一个conn对象,然后就是可以设置get或者是post方法,接着用流来读取响应结果即可 String html = null; lon ...
- Android MultiType第三方库的基本使用和案例+DiffUtil的简单用法
1.MultiType简单介绍 1.1.MultiType用于比较复杂的页面. 如下图,今日头条用到了MultiType处理各种复杂的页面. 这种还是比较简单的类型.因为一个页面也就这种类型. ...
随机推荐
- 标准盒模型与IE盒模型之间的转换
首先上图,这两张很明显可以看出IE盒模型和标准盒模型之间的差别. 当然今天不是去细细追究两种模型具体是怎么去计算布局的,那个很多文章已经已经有过了,不再重复.以前刚开始学习盒模型的时候,就学到的是IE ...
- Installing Erlang
Installing Erlang Pre-built binaries for most common platforms. Source code releases from the main E ...
- 安卓:drawable
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http: ...
- nodejs Express 4.x req.body req.query req.params 三种获取参数的方法
第一种情况:http://localhost:3000/1,我们可以用req.params.(应该是跟路由有关,待) 第二种情况:http://localhost:3000/?id=1,用req.qu ...
- ubuntu 开机显示错误:无法应用原保存的显示器配置
无法应用原保存的显示器配置CRTC 63:尝试 800x600@60Hz 模式输出在 1366x768@60Hz (通过 0)CRTC 63:尝试 2560x1600@60Hz 模式输出在 1366x ...
- pgadmin中的备份功能消失的原因和找回方法
pgadmin在正常情况下,在左侧的[对象浏览器]中选中数据库.模式或者表时,右键会出现[备份]和[恢复]的选项(除早期不支持该功能的版本外). 如: 当然,有时候有人会发现,当你想要用这些备份还原功 ...
- C++ 用libcurl库进行http通讯网络编程
使用libcurl完成http通讯,很方便而且是线程安全,转载一篇比较好的入门文章 转载自 http://www.cnblogs.com/moodlxs/archive/2012/10/15/2724 ...
- 编程范式 epesode2 negative values, float 精度
episode2 //it is very interesting,an excellect teacher, I love it 1,why negative is indicated the w ...
- 使用网易ubuntu镜像加速软件包安装
用vi工具编辑文件 sudo vi /etc/apt/sources.list 以trusty(14.04)为例,插入下面内容到文件的最前面: deb http://mirrors.163.com/u ...
- hello
#include <iostream> int main() { std::cout << "请输入两个数字:" << std::endl; , ...