expect命令使用

expect用法介绍 一、概念 Expect是一个用来实现自动交互功能的软件套件。 执行shell脚本,需要从终端得到输入时(如ssh root@192.168.1.2),Expect可以根据提示,模拟标准输入来实现交互脚本执行,使其以非交互的方式执行 可以把shell和expect理解为两种不同的脚本语言,expect有独自的语法、变量 二、ssh远程主机的方式 2.1.简单方式,直接使用expect命令 #!/bin/bash #登陆远程主机并查看主机名 IP="192.168.1.2" USERNAME="root" P 阅读详情

目录

1、 概述

expect 是由Don Libes基于Tcl(Tool Command Language
)语言开发的,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率

2、语法

expect命令

expect 语法:

expect [选项] [ -c cmds] [ [ -[f|b] ] cmdfile] [ args]

选项

-c:从命令行执行expect脚本,默认expect是交互地执行的

示例:expect -c ‘expect “\n” {send “pressed enter\n”}

-d:可以输出输出调试信息

示例:expect -d ssh.exp

expect中相关命令

spawn:启动新的进程

send:用于向进程发送字符串

expect:从进程接收字符串

interact:允许用户交互

exp_continue匹配多个字符串在执行动作后加此命令

expect最常用的语法(tcl语言:模式-动作)

单一分支模式语法:

expect “hi” {send “You said hi\n”}

匹配到hi后,会输出“you said hi”,并换行

多分支模式语法:

expect “hi” { send “You said hi\n” } \

“hehe” { send “Hehe yourself\n” } \

“bye” { send “Good bye\n” }

匹配hi,hello,bye任意字符串时,执行相应输出。等同如下:

expect {
"hi" { send "You said hi\n"}
"hehe" { send "Hehe yourself\n"}
"bye" { send “Good bye\n"}
}

3 、脚本

以下是在expect在shell脚本中调用常用的几个用法,自动拷贝脚本,下发脚本,ssh 和telnet 连接远程主机.

这里写图片描述

这里写图片描述

4 、总结

expect可以实际静默的操作,这个在脚本中经常用到,读者根据对应的功能,拷贝相关代码,可以直接把变量换成固定的值,不需要每次运行脚本都需要人工输入变量值,实现静默操作。

本文参考

shell中使用expect命令进行远程执行命令脚本 expect是用来实现自动交互功能的工具之一,使用expect-send来实现交互过程。 注意: 1、脚本的执行方法与bash shell不一样,比如:expect example.sh 2、向一个脚本传递参数时,bash shell是使用$1,2...来接收参数的;而expect则将脚本的执行参数保存在数组2...来接收参数的;而expect则将脚本的执行参数保存在数组2...来接收参数的;而e... 阅读详情

相关推荐

expect脚本中使用scp命令的方法,expect脚本中scp命令获取不了值的问题完美解决方法

其实我之前文章中已经有说过这个的解决方法 expect结合scp自动输入密码的脚本提取linux主机的ip和其mac地址、scp结合expect使用【不用spawn启动scp】、while遍历目录获取所有文件名称【cat文件>>到同一目录】但是今天,我在expect中使用scp的时候,我又忘了上面脚本中已经遇到过这个问题,所以一直报错,搞得我真是难受,好久才想起来之前遇到过的,但想起了没用啊,发现本次的需求和上一次的根本不一样,不能直接套现来用,所以我觉得有必要单独拿一个文章来说说这个问题!!!!标题中你可

崔崇鑫的博客,你linux/云运维工作中的百科全书。 1481

linux 脚本之 expect命令使用

1 概述expect 是由Don Libes基于Tcl(Tool Command Language )语言开发的,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率2 语法expect命令expect 语法...

weixin_33744141的博客 375

动态规划法:n*m方格前进问题

在一个n*m的方格中,m为奇数,放置有n*m个数,方格中间的下方有一人,此人可按照正前方相临的五个方向(方格)前进但不能越出方格。人每走过一个方格必须取此方格中的数。要求找到一条从底到顶的路径,使其数相加之和为最大。输出和的最大值。 算法设计: 可以使用动态规划方法,从顶部开始,将第二排的每个数加上顶部第一排的最优解,将6排的问题缩小为5排的问题,然后重复该操作,直到底部最后一排,此时

Winifred_1997的博客 4675

expect命令简介及使用案例

expect命令简介及使用案例

子非鱼39938的博客 3902

Unity插件UniWebView实战:UGUI动态调整内嵌网页尺寸与交互优化

本文详细解析了如何在Unity游戏中使用UniWebView插件实现内嵌网页的动态尺寸适配与深度交互。核心在于利用Reference Rect Transform属性,将网页窗口精准绑定至UGUI控件,并随其动态调整。文章进一步探讨了通过消息系统与JavaScript执行实现Unity与网页的双向通信,并提供了加载优化、过渡动画及事件拦截等实用技巧,助力开发者打造无缝、流畅的游戏内网页体验。

earth的博客 276

宝塔面板+pbootCMS建站全流程:从服务器选购到上线优化(附常见问题排查)

本文提供了一份详尽的宝塔面板与pbootCMS建站实战指南。内容涵盖从云服务器选购、宝塔面板部署与安全加固,到pbootCMS安装、权限配置、数据库连接等核心步骤。同时深入讲解了PHP环境优化、Nginx伪静态设置、缓存开启等性能与SEO优化技巧,并附有常见问题排查与后期维护建议,帮助用户高效、稳健地完成专业网站构建。

e4f5g6h的博客 661

Linux学习之expect操作详解

1.expect命令安装安装语句:yum install expect2.expect命令含义expect是一种脚本语言,它能够代替人工实现与终端的交互,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。3.expect使用场景(1)并根据预定标准回答其问题,回答“是”、“否”或将控制权交还给您(2)远程连接设备并执行自动化操作(3)主要是一些需要人机交互的地方,如果提前知道应该输入什么指令都可以使用expect 工具。

jh035的博客 1万+

基于 WebGoat 平台的 SQL 注入攻击

基于 WebGoat 平台的 SQL 注入攻击

Labulongdong的博客 3524

expect命令

expect介绍 expect 是由Don Libes基于Tcl( Tool Command Language )语言开发的,主 要应用于自动化交互式操作的场景,借助 expect 处理交互的命令,可以将交互过 程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对 多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率 expect命令 expect...

小白 840

Godot 4.x 实现 JRPG 回合制战斗系统:架构、状态机与实战优化

游戏开发中,状态机是管理复杂逻辑流转的核心设计模式,尤其在回合制战斗这类事件驱动的场景中。其原理是通过定义有限的状态和明确的转移条件,来控制系统在不同阶段的行为,从而实现清晰、可维护的流程控制。这项技术的价值在于能够将杂乱的条件判断代码结构化,降低模块间的耦合度,提升代码的可读性和可扩展性。在游戏开发领域,状态机广泛应用于角色AI、UI流程、战斗系统等场景。本文以Godot引擎为例,深入探讨如何运用节点与信号驱动架构,构建一个健壮的JRPG(日式角色扮演游戏)回合制战斗系统。内容涵盖从核心的**状态机**设

weixin_33749242的博客 500

构建自己的哨兵数据集(以sentinel-1为例,使用SNAP软件)

通过欧洲航天官网获取哨兵数据的产品,通过SNAP软件进一步得到SAR图像(以导出图片为例)

xiaoxTai的博客 6183

【Linux】命令expect使用详解

expect 是由Don Libes基于Tcl(Tool Command Language )语言开发的,是一种脚本语言,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率。

康师傅没有眼泪 1万+

FPGA面试题目笔记(一)——FPGA开发流程、亚稳态和竞争冒险、建立保持时间、异步FIFO深度等

同步异步电路、同步异步复位、时钟偏移和抖动、最小工作周期计算、触发器锁存器

H19981118的博客 1万+

Linux 自动化处理命令 Expect 使用教程

本文介绍 Expect 的主要命令和语法规则 , 学习它可以完成一些自动化的工作。

我其实什么都不会 6204

85-Halcon-- gen_cam_par_area_scan_division 函数功能(生成面阵相机镜头参数)

Halcon的gen_cam_par_area_scan_division算子用于生成面阵相机的镜头参数,支持除法畸变模型。该算子输出包含9个参数的元组,包括焦距(Focus)、畸变系数(Kappa)、像素尺寸(Sx,Sy)、主点坐标(Cx,Cy)和图像尺寸。文中详细解析了各参数含义、数学原理(包括畸变矫正公式和坐标转换),并提供了三个工业应用案例:高精度芯片尺寸测量、机器人焊接引导和大视野汽车表面检测。最后给出了完整的相机标定流程,涵盖参数生成、畸变校正和标定配置步骤,适用于工业视觉系统的精确标定需求。

weixin_45590420的博客 915

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

expect 使用手册命令详解

expect 使用手册命令详解

AKA石头 719

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Linux命令之expect,使用expect来完成shell中交互值的自动录入

使用expect可以在需要人工交互的命令中,直接设置交互值,不需要再手工录入,从而实现自动执行需要手工交互的命令; 1、安装expect yum install expect 2、执行示例 (1) 首先编写expect文件,命名为:shiftRoot.ep目的是进行root用户切换时,不需要录入root密码。 spawn s...

fycghy0803的专栏 349

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

expect中使用exec执行shell命令的方法

轉載自http://blog.youkuaiyun.com/ljkeke/article/details/7489899   今天想在expect脚本中获取本机ip,执行脚本是报错,脚本如下:   set localip [exec ifconfig eth0 | grep Mask | cut -d: -f2 | awk '{print $1}]   google了一下,有些

菩提本無樹 5335

CentOS使用expect批量远程执行脚本和命令

我们有时可能会批量去操作服务器,比如批量在服务器上上传某个文件,安装软件,执行某个命令和脚本,重启服务,重启服务器等,如果人工去一台台操作的话会特别繁琐,并浪费人力。 这时我们可以使用expect,向目标服务器上发送指令去实现批量操作。 下面的例子将在centos上将一个文件,批量拷贝到其他服务商上,并执行相应的命令 1. 在centos上安装expect yum install expect 2. 编写expect脚本copyfilebatch.sh 下面的脚本将向内网IP为 192..

u014389734的博客 447

Shell 中的 expect 命令使用

expect 语法 expect [选项] [ -c cmds ] [ [ -[f|b] ] cmdfile ] [ args ] 选项 -c:从命令行执行expect脚本,默认expect是交互地执行的 示例:expect -c 'expect "\n" {send "pressed enter\n"}' -d:输出调试信息 示例:expect -d ssh.exp expect中的相关命令

ol_m_lo的博客 3544

linux shell脚本交互式组件expect命令安装与使用

背景:expect命令可以使用在使用shell脚本时需要跟系统交互的场景,比如你安装一个软件,在安装过程中会提示是否需要安装某些小的组件,用户需要输入相应指令(e.g yes no)才会继续执行,此时其命令执行输出并未结束,因此需要使用expect命令来达到捕捉某个提示,并作相应处理,安装过程如下: 首先安装其依赖包:tcl wgethttp://nchc.dl.sourceforge.n...

chengxiaili的博客 1053

spawn expect send 命令使用方法

一,什么是expect?  在做系统管理时,我们很多时候需要输入密码,例如:连接 ssh,连接ftp,  那么如何能做到不输入密码吗?  我们需要有一个工具,能代替我们实现与终端的交互,  那么,就是它:expect,管理员的最好的朋友之一  它能够代替我们实现与终端的交互,我们不必再守候在电脑旁边输入密码,  或是根据系统的输出再运行相应的命令,  这些都可以由expect代替我们来完成 二、...

武小白的博客 5188

Linux之expect命令,以及实战使用!!!

目录expect工具介绍一. expect 简介二. expect工作原理三. 基本语法1.实例简介2.expect 启动选项:3.expect 命令参数:四. 实例展示: 1.centos7.6 自动git pull 2.centos7.6 自动登录ssh执行命令 expect 工具是一个根据脚本与其他交互式程序进行交互。通过在脚本中设定期望值和响应值进行交互操作。主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。解释型语言提供分支和高级控制结

m0_53396354的博客 7282

expect4j完成一个命令执行工具和使用总结

使用expect4j完成一个交互式处理的java工具 最近要管理很多网络设备由于配置都差不多配什么静态路由啊,黑名单,等等。本来利用python的ansible可以对linux服务器进行这样的操作的但是这种网络设备完全不适用,他们无法执行基本的bash命令。故而只能使用基于命令行操作的方式来处理。程序的作用就是降低重复大量的机械劳动。 介绍下expect的基本原理通过ssh链接读取字节流输出字节流,然后进行匹配看是否完成常用的是正则匹配、超时匹配、EOF匹配等,目前我用的主要是正则和超时,匹配过后可以针

u012765283的专栏 1425

3、expect命令简介和使用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34408624的博客 599
上一篇: 课后练习答案汇总
下一篇: 欢迎使用优快云-markdown编辑器
Six_Fly
博客等级 码龄9年 5粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值