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

PMOS过压保护电路设计与仿真优化策略

本文深入探讨PMOS过压保护电路(OVP)的设计与仿真优化策略,详细解析PMOS管选型、稳压管特性及三极管配置等关键要素。通过Proteus仿真案例揭示典型设计误区,并提供响应速度提升、抗干扰设计等进阶优化方案,助力工程师实现高可靠性的电源保护系统设计。

weixin_42620340的博客 442

expect命令简介及使用案例

expect命令简介及使用案例

子非鱼39938的博客 3901

【大模型】一图看懂3D因果卷积!

本文将系统性地介绍从1D到3D的因果卷积原理,通过直观的动图演示帮助读者理解其工作机制,并重点探讨3D因果卷积在大规模视频生成中的独特价值和应用前景。

xian0710830114的专栏 2199

U盘安装单系统ubuntu10.04之全过程&拔掉U盘后系统无法启动

借助U盘把电脑装成ubuntu单系统之过程记录,以及遇到拔掉U盘后系统无法启动问题,电脑就显示: Non-System disk or disk error, replace and strike any key when ready

CXHPLY的专栏 8680

Linux学习之expect操作详解

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

jh035的博客 1万+

实验三、数字PID控制器的设计

由图可知,由于微分环节的作用,在曲线的起始上升段出现了一个尖锐的波峰,之后曲线也呈衰减的振荡:随着Td增加,系统的超调量增大,但曲线尖锐的起始上升阶段后响应速度减慢,可以看出Td越小。对大多数算法,缩短采样周期可使控制回路性能改善,但采样周期缩短时,频繁的采样必然会占用较多的计算工作时间,同时也会增加计算机的计算负担,而对有些变化缓慢的受控对象无需很高的采样频率即可满意地进行跟踪,过多的采样反而没有多少实际意义。随着Kp的增加,闭环系统的超调量增加,响应速度加快,控制时间加长,稳态误差减少;

m0_51738372的博客 8023

expect命令

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

小白 840

如何正确理解和获取S参数

差分四端口的S参数是由双端口S参数逐步演化而来,因此,在数学中,其各分量均可以从单端S参数推导而来,在实际的仿真和测试中,软件和测量设备也是通过获取单端S参数矩阵再进行运算得到混合S参数矩阵的,并非直接获取。

一只豌豆象的博客 5153

C++ 图像线特征提取(CannyLine算法+opencv3.4.6)

C++ 图像线特征提取(CannyLine算法+opencv3.4.6)

weixin_43896283的博客 1084

【Linux】命令expect使用详解

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

康师傅没有眼泪 1万+

基于Linux的PCIe设备驱动开发入门到精通-- 11.2 锁机制与并发控制 (自旋锁、互斥锁) 11.3 性能瓶颈分析与优化建议

本文探讨Linux驱动开发中的性能优化方法论,重点聚焦并发控制与性能瓶颈分析。从锁机制选择(自旋锁、互斥锁等)到工具使用(ftrace、perf),详细介绍了定位锁竞争和CPU热点的实战步骤,包括ftrace事件跟踪和perf火焰图分析。针对常见性能瓶颈(CPU/内存/I/O/锁竞争),提出了锁粒度优化、无锁结构替换、中断处理优化等解决方案。强调性能优化需要理论结合实践,通过"假设-测量-验证"的循环持续迭代。为开发者提供了一套从问题定位到解决的完整方法论,助力开发高性能工业级驱动。

MHD0815的博客 130

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

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

我其实什么都不会 6204

Halcon实例转OpenCVSharp--粘连物体分割与计数(基于距离变换+分水岭算法) (附源码)

本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍OpenCVSharp应用实例--粘连物体分割与计数(基于距离变换+分水岭算法)! 本文使用的OpenCVSharp版本---》v4.5.3。 实现目标:将下图中的硬币分割出来并计算数量。 预期效果图: ...

Color Space的博客 2420

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

expect 使用手册命令详解

expect 使用手册命令详解

AKA石头 719

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

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

fycghy0803的专栏 349

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字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、付费专栏及课程。

余额充值