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

MATLAB与STK互联23:卫星对象操作(14)—仿真分析案例1,建立8个地面站,分析对卫星的可见性

学习到这里,我们有必要做个仿真分析案例,把之前我们学习的零散知识点串起来,看一下在真实的分析中怎么应用。 分析要求:建立8个地面站,分析每个地面站对某个轨道高度500km、倾角60°圆轨道的卫星,1天内的可见次数、可见弧长以及可见弧段间隔列表。 基本约束:地面站仰角8°~90°,作用距离<2000km,太阳矢量与地面站到卫星视线夹角不小于15°,可见弧段应大于30s。地面站站址可随机生成,但要求在南北纬50°范围内。 下面上代码: uiap = actxserver(‘STK11.application’)

ltylty001的博客 7492

expect命令简介及使用案例

expect命令简介及使用案例

子非鱼39938的博客 3902

QtWebApp的使用【在Qt中搭建HTTP服务器】(一)

用Qt和QtWebApp能够实现在C++中开发HTTP Web服务器应用程序。 首先,需要先安装Qt的软件开发工具包。点此下载 其次,下载最新的QtWebApp库。点此下载 下载并解压缩QtWebApp ZIP文件。你将会看到: 如何使用QtWebApp 1)将QtWebApp.zip文件解压到文件夹中,并创建一个名为“ MyFirstWebApp”的新Qt控制台项目。然后,建立如下文件结构: 2)将以下行添加到MyFirstWebApp项目的项目文件中: QT += network include(

饭的笔记本 2万+

闲鱼客户端三重动态签名机制解析:x-sign、x-mini-wua与x-umt

在移动客户端安全通信中,设备级动态签名已成为主流App防范自动化攻击的核心手段。其原理是将设备指纹、运行时行为与可信硬件标识深度融合,生成不可复用、不可跨端、不可静态伪造的请求凭证。这类机制超越传统Token或Session鉴权,具备强上下文绑定性与实时熵值校验能力,广泛应用于电商、社交及开放平台等高风险接口场景。技术价值体现在有效识别模拟器、无头浏览器与集群化爬虫,同时保障多端一致性与合规数据对接。本文聚焦闲鱼客户端实际落地的x-sign(带设备上下文的混合签名)、x-mini-wua(小程序行为水印)与

weixin_35732273的博客 497

Linux学习之expect操作详解

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

jh035的博客 1万+

计算机组成与系统结构(第三版) 袁春风主编 课后习题答案讲解 第一、二章 计算机系统概述 数据的机器级表示

计算机组成与系统结构(第三版) 袁春风主编 课后习题答案讲解 第一、二章 计算机系统概述 数据的机器级表示

qq_73523062的博客 2094

expect命令

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

小白 840

SAP FICO CK40N批量发布标准价:常见报错排查与实战解决指南

本文详细解析了SAP FICO模块中CK40N批量发布标准价的常见报错及解决方案。从物料选择、成本核算到最终发布的全流程,提供了针对'已有标准成本估算记号'等典型报错的实战处理技巧,并分享了预防性维护与批量处理的高效方法,帮助财务人员提升工作效率。

weixin_29234509的博客 305

Marvell 88E6390x交换芯片:从零构建No-CPU模式网络交换系统

本文详细介绍了如何为Marvell 88E6390x以太网交换芯片构建No-CPU模式网络交换系统。通过解析其核心价值与硬件准备,并手把手指导使用CodeBlocks、IMPGUI和SwitchGUI等软件工具进行配置代码编写、镜像生成与烧录,最终实现交换芯片脱离外部CPU独立工作,适用于成本敏感、空间受限的嵌入式网络设备设计。

plant的博客 485

【Linux】命令expect使用详解

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

康师傅没有眼泪 1万+

基于通义千问2.5-7B-Instruct的技术深度解析

通义千问2.5-7B-Instruct是一个基于Transformer架构的大型语言模型,具有70亿参数。它通过自注意力机制和前馈神经网络处理输入序列,能够捕捉长距离依赖关系,适用于多种NLP任务。微调是指在预训练模型的基础上,使用特定任务的数据进行进一步训练,以使模型更好地适应特定任务。微调可以显著提高模型在特定任务上的性能。通义千问2.5-7B-Instruct是一个强大的语言模型,适用于多种NLP任务。通过深入理解其架构、微调方法和核心代码,可以更好地应用于实际场景。

zhangjiaofa的专栏 1569

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

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

我其实什么都不会 6204

Windows 11 安装 JDK 25:下载、安装、配置环境变量、验证

本文详细介绍了在 Windows 11 系统上安装 JDK 25 的完整流程,包括从 Oracle 官网下载压缩包、解压至自定义目录、配置 JAVA_HOME 与 Path 环境变量,并验证安装是否成功。文章推荐使用 ZIP 压缩包而非 EXE 安装程序,以实现绿色便携、多版本共存和灵活管理。最后通过一个使用 Java 25 新特性的示例程序,验证 JDK 的编译与运行环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 7671

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

expect 使用手册命令详解

expect 使用手册命令详解

AKA石头 719

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

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

fycghy0803的专栏 349

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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、付费专栏及课程。

余额充值