神奇的expect

想写自动化脚本的时候,遇到需要交互的,如ssh,scp,就束手无策,直到我知道了expect。

expect 有一系列expect-send对组成,就像聊天一样。

expect A send B

expect C send D

先来个例子

#!/usr/bin/expect

set timeout 5

spawn ssh 192.168.2.38

expect "password" {send "slk\n"}

expect "Last login" {send " ls -l\n"}

expect eof

exit

/usr/bin/expect是指明该脚本要调用expect

set timeout 5,设置每个expect等待的时间,-1则为永不超时,在expect scp xxx xxx 的时候很好用,时间如果设太短,还没传完,expect就返回了。

spawn 创建一个进程,执行ssh 192.168.2.38命令,然后下面就是expect 和send的命令对了。

expect "password" {send "slk\n"}, 当出现“expect"的时候,发送,"slk\n",必须要加\n,就和我们平时自己输秘密最后要加个\n一样。

expect可以不止一个,所以下面可以继续expect和send。如果要执行的命令有很多,可以不写那么多expect send,直接把命令写在另一个脚本里,expect "Last login" {send " ./do.sh\n"} 就好了,expect是为交互而存在的,在不需要交互的地方调用expect是浪费自己的时间。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql explain语句_Mysql explain 语句详解

explain 语句详解explain 写在 select 前,如下mysql> explain select * from user_info where id 2\G*************************** 1. row ***************************id: 1select_type: SIMPLEtable: user_infopartitions: NULLtype: constpossible_keys: PRI…

TF-IDF理解及其Java实现

TF-IDF 前言 前段时间,又具体看了自己以前整理的TF-IDF,这里把它发布在博客上,知识就是需要不断的重复的,否则就感觉生疏了。 TF-IDF理解 TF-IDF(term frequency–inverse document frequency)是一种用于资…

结合file和iconv命令转换文件的字符编码类型

http://hi.baidu.com/netwrom/blog/item/8885f31ef0d09ae7e1fe0b1c.html在很多类unix平台上都有一个iconv工具,可以用来转换字符编码;而对于普通的文本文件,file命令可以用来检测某个文件的字符编码类型,结合两者就可以非常方便地…

PostgreSQL 9.2迁移到9.3

Netkiller PostgreSQL 手札 Mr. Neo Chan, 陈景峰(BG7NYT) 中国广东省深圳市龙华新区民治街道溪山美地51813186 1311366889086 755 29812080<netkillermsn.com> 文档始创于2012-11-16 版权 © 2010, 2011, 2012, 2013 Netkiller(Neo Chan). All rights reserved. 版…

mysql no listenter_为什么mysql中用\G表示按列方式显示

关于mysql的错误 - no query specified学习了&#xff1a;http://blog.csdn.net/tenfyguo/article/details/7566941sql语句可以用分号或者\G来结尾&#xff1b;出现这个错误一般是分号多写了&#xff1b;学习了&#xff1a;http://blog.csdn.net/guoqianqian5812/article/detai…

C#原型模式之深复制实现

SYSTEM空间有ICONEALBE接口。。。因为其太常用。 1 /*2 * Created by SharpDevelop.3 * User: home4 * Date: 2013/4/215 * Time: 22:206 * 7 * To change this template use Tools | Options | Coding | Edit Standard Headers.8 */9 using System;10 11 namespace Res…

old header

海纳百川 山不拒土 No Backspace in Real Life. Love Life!【Cloud】【LBS】【GIS】【GPS】【MAPS】【C】【Java】转载于:https://www.cnblogs.com/yqskj/p/3293340.html

python flask框架教程_Flask框架从入门到实战

Flask简介&#xff1a;Flask是一个使用 Python 编写的轻量级 Web 应用框架&#xff0c;基于 WerkzeugWSGI工具箱和 Jinja2模板引擎。使用 BSD 授权。Flask也被称为 “microframework” &#xff0c;因为它使用简单的核心&#xff0c;用 extension 增加其他功能。Flask没有默认使…

js 中英文字符串长度

<script language"javascript"> //判断中英文&#xff1a; function isChinese(str) { var lst /[u00-uFF]/; return !lst.test(str); } if(isChinese("名字")) alert("Yes"); else alert("NO"); </script>…

【COCOS CREATOR 系列教程之二】脚本开发篇事件监听、常用函数等示例整合

本站文章均为 李华明Himi 原创,转载务必在明显处注明&#xff1a; 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/cocos-creator/1959.html【Cocos Creator 】(千人群):432818031 上一篇&#xff0c;介绍了Himi在使用过cc所有组件后的一篇总结&#xff0c;没有…

iphone开发中数据持久化之——属性列表序列化(一)

数据持久化是应用程序开发过程中的一个基本问题&#xff0c;对应用程序中的数据进行持久化存储&#xff0c;有多重不同的形式。本系列文章将介绍在iphone开发过程中数据持久化的三种主要形式&#xff0c;分别是属性列表序列号、对象归档化以及iphone的嵌入式关系数据库SQLite。…

python多个变量与字符串判断_python怎么判断变量是否为字符串

在python中怎么连接变量和字符串&#xff1f;我真的懂你不是喜新厌旧只是我没能在你寂寞的时候伴你左右假设你的变量也是str类型 直接用号就可以a"test"connecta"teststr"也可以使用%s connect"%s teststr"%a Python是一种面向对象、直译式计算机…

对话jQuery之父John Resig:JavaScript的开发之路

在参加完CSDN组织的TUP对话大师系列演讲活动后&#xff0c;27岁的jQuery之父John Resig接受了本刊总编刘江的深度访谈&#xff0c;这篇对话文章&#xff0c;让我们一窥这位著名程序员的人生及技术感悟。 编程初体验 《程序员》&#xff1a;你是如何开始编程的&#xff1f; John…

互联网产品研发的典型流程

这张图是互联网产品研发的一种最佳实践&#xff0c;这张图中没有包含异常流的处理。通常异常出现在进入开发甚至测试阶段了还在变更需求&#xff0c;进入封版发版阶段了还在修改代码&#xff0c;所以在这两个时间点都有需求冻结和代码冻结。 转载于:https://www.cnblogs.com/mo…

智力杠杆

智力杠杆是我在车上看一本财经书时从金融杠杆联想到的; 言归正传&#xff0c;先从金融杠杆开始: 金融杠杆 金融杠杆(leverage)简单地说来就是一个乘号&#xff08;*&#xff09;。 使用这个工具&#xff0c;可以放大投资的结果&#xff0c;无论最终的结果是收益还是损失&#…

vscode 预览图片 插件_真的动手写的VSCode的插件(图片浏览)之1

由于本职工作中经常做图像处理&#xff0c;于时大量的图片浏览是不可避免的。怎么样不离开最近经常使用的VSCode&#xff0c;同时去看大量的图像对我来讲就是个不错的需求&#xff0c;尤其是某个目录下的文件。先谈基本的需求吧&#xff0c;显示一个目标下的所有图像&#xff0…

JS闭包实例

学习闭包的时候看的例子&#xff0c;记录上来&#xff0c;以便以后可以再次深入理解&#xff01; 1 <script type"text/javascript"> 2 <!-- 3 //事件处理封装函数 4 function f(obj,method){ 5 return function(e){ 6 e e || win…

JAVA mysql存数组_JAVA数组怎么存放数据库的元素

Stringsql"selectidfrombuildingwherenumber>?";Stringparas[]{number};spnewSqlHelper();ResultSetrssp.query(sql,paras);while(rs.next()){idrs.getString(1);/i假如循环后id...String sql "select id from building where number>?";String pa…

四十三 常用内建模块 base64

Base64是一种用64个字符来表示任意二进制数据的方法。 用记事本打开exe、jpg、pdf这些文件时&#xff0c;我们都会看到一大堆乱码&#xff0c;因为二进制文件包含很多无法显示和打印的字符&#xff0c;所以&#xff0c;如果要让记事本这样的文本处理软件能处理二进制数据&#…

ZOJ Problem Set - 1067 Color Me Less

这道题目很简单&#xff0c;考察的就是结构体数组的应用&#xff0c;直接贴代码了 #include <stdio.h> #include <math.h>typedef struct color {int r;int g;int b;}color;double distance(color c1,color c2) {return sqrt(pow((c1.b-c2.b),2)pow((c1.g-c2.g),2)…