linux交互式输入自动化 read & expect

免交互:Here Document、Expect(ssh一键部署) 免交互1.Here Document概述1.通过read命令接收输入并打印2.通过passwd给用户设置密码2.Expect概述1.基础命令2.单分支和多分支语法3.执行方式3.ssh的免密登录 1.Here Document概述 1.使用I/O重定向的方式将命令列表提供给交互程序 2.标准输入的一种代替品 3.语法格式: 命令 <<标记 … … 标记 1.通过read命令接收输入并打印 #!/bin/bash # read免交互 read z <<DD abc DD echo 阅读详情

输入脚本:

#!/bin/bash

#file name : interactive.sh

read -p "input number:" num;

read -p "input string:" str

echo num: $num str:$str;


命令行输入:

echo -e "1\nhelloworld\n" | ./interactive.sh


输入内容较多时也可以用单独的文件,从文件中导入交互式输入数据:

echo -e "1\nhelloworld\n" > input.data

./interactive.sh < input.data


用expect实现自动化:

expect默认情况下没有附带于常见的linux发行版,需要安装。

ubuntu14.04下安装:sudo apt-get install expect

#!/usr/bin/expect

#expect.sh

spawn ./interactive.sh

expect "input number"

send "1\n"

expect "intput string"

send "helloworld\n"

expect eof


#运行: ./expect.sh

命令解释:

spawn:参数指定需要自动化哪个命令

expect:参数提供需要等待的i消息

send:要发送的消息

expect eof 指明指令交互结束


注意头命令#!/usr/bin/expect,如果出现安装了expect但是找不到相关命令,请参考:

对于expect的隐式调用,所以需要在第一行声明对于本脚本代码的解释器。

具体解释不再详细论述,请见博文:http://blog.youkuaiyun.com/sanwu2010/article/details/14454237


Linux 串口自动化测试:3 种 Shell 脚本方案对比与实战 本文详细对比了Linux串口自动化测试的三种Shell脚本方案,包括原生Shell方案、Expect脚本方案和socat专业工具方案,帮助工程师快速选择适合的测试框架。文章提供了实战代码示例和性能对比,特别适合嵌入式开发和工业自动化领域的串口测试需求。 阅读详情

相关推荐

ENVI水体提取流程实践与问题

ENVI水体提取流程实践与问题 卫片解译中,水体属于比较好判别的一类。有水体指数、阈值法、监督分类等一系列方法进行提取,今天介绍利用水体指数和ENVI提取水体的过程。 1.所用数据 Landsat8卫片1景、ENVI5.3。 2.辐射定标与水陆分离 由于要对卫片进行水体指数的计算,因此需要对数据进行辐射定标以及大气校正的预处理。 辐射定标就是将图像的数字量化值(DN)转化为辐射亮度值或者反射率或者表面温度等物理量的处理过程。在工具栏中搜索Radiometric Correction,点开进行辐射定标。

Soul_taker的博客 4万+

Shell脚本:expect脚本免交互

(1)交互:人工发出指令控制程序的运行,程序收到人工相应指令后,做出相应的反应。(2)免交互:程序按编写好的运行方式,进行指定指令操作,在这个过程中,不需要人工操作,自动化完成。(1)建立在tcl之上的一个工具(2)用于进行自动化控制和测试(3)解决shell脚本中交互相关的问题。

Riky12的博客 3251

Scrapy实现微博关键词爬虫(爬虫结果写入mongodb)

话不多说,上代码: spiders文件夹下的microBlogSpider.py里这样写: # -*- coding: utf-8 -*- import scrapy from scrapy import Spider, Request, FormRequest from scrapy.selector import Selector import datetime import random from blogSpider.items import microBlogItem, keyWordItem f

qq_39360565的博客 1779

使用expect实现自动交互,shell命令行自动输入,脚本自动化,变量引用,expect spawn执行带引号命令,expect 变量为空,不生效,不能匹配通配符*,函数,数组

背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互。 expect是一个自动交互功能的工具,可以满足代替我们实际工作中需要从终端手动输入某些内容来使得程序或命令继续运行的目的。如安装软件是时的一些提示,ssh远程主机执行命令时需要多次输入密码的情况。 安装expect 安装依赖:yum install tcl -...

TDXYBS的博客 3695

算法导论之线性规划

线性规划,充斥着运筹学,在图的单源最短路径求解差分约束系统就是用到线性规划。怎么样问题可以建模为线性规划来解决呢?在给定的有限的资源和竞争约束情况下,取得最大化或最小化目标的问题。导论中给出政治竞选问题、航空航线调度问题、钻井采油问题。最大化或最小化目标是函数的因变量,自变量就是资源的约束因素,其函数就是由这些制约因素构成的等式或不等式。下面数学定义下线性规划。 在一般线性规划问题中,最优化一个

医疗影像检索 2万+

基于STM32的便携式心率血氧监测系统 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6核心控制器,完整实现了便携式心率血氧监测系统的全功能开发,覆盖MAX30102光电传感器驱动、PPG信号处理、心率血氧解算算法、人机交互、数据存储、报警保护、低功耗管理等核心功能,全程采用无跳步保姆式教学,从硬件选型、接线、CubeMX配置、代码开发、调试优化全流程拆解,跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 767

expect 之文件操作

在expect中通过exec cmd 来执行系统命令。% exec date 2014年 04月 22日 星期二 16:00:39 CST % exec date &gt; date.txt % exec cat date.txt 2014年 04月 22日 星期二 16:00:53 CST% puts "my name is [exec whoami]" my name ...

weixin_33908217的博客 868

通信算法之281:大疆DJI无人机ID-DJI DroneID开源工程-相关问题-协议信息问题

ZC序列的参数未知。但是,使用第一个或第二个零相关序列对每个OFDM符号进行相位调整,对于直接相邻于使用过的零相关序列的时间上的OFDM符号工作得很好,但对其它符号效果不佳。由于符号的顺序没有改变,而9 OFDM符号情况下的第一个OFDM符号没有用处,因此本存储库中的脚本对待所有突发都是有9个OFDM符号的,并且不对第一个OFDM符号做任何处理。棘手的地方在于需要生成比数据载波数量(始终为600)多1个的零相关序列,零化中间元素,将生成的样本映射到FFT的中心(采样率决定bin的数量),然后计算IFFT。

leegang12的专栏 1619

expect使用总结

原则:尽量不要使用expect的复杂功能,只执行简单命令就好。 1、获取expect send的返回值: 使用$expect_out(buff) 2、使用expect执行远程命令: 只能使用send open、read、exec都是在本地执行,不是在远程机器上。 3、变量 send “$test” 指的是脚本中变量 send "echo $test"指的是远程变量 ...

aashuii的博客 1899

城市仿真软件:AnyLogic_(8).行人与人群动态仿真

定义行人个体的行为和属性,如行走速度、目标位置等。// 创建一个行人// 设置行走速度为1.5 m/s// 设置目标位置为入口// 创建另一个行人// 设置行走速度为1.2 m/s// 设置目标位置为出口// 创建行人// 创建乘客行人与人群动态仿真在城市规划、交通管理和紧急疏散等领域具有广泛的应用。通过AnyLogic提供的行人模型模块,可以有效地模拟行人的个体行为、群体动态和与环境的交互。

kkchenjj的博客 1246

AUTOSAR从入门到精通-诊断事件管理模块(DEM)(四)

在 Autosar 中,诊断事件是指在车辆电子系统中发生的特定事件,可以用于诊断和故障排除。DEM模块通过EventId和相关的EventName来表示每个诊断事件。诊断事件的状态代表了监控器的结果,DEM模块通过RTE或其他BSW模块从SW-C接收监控器的结果。DEM模块使用EventId来管理系统中每个诊断事件的状态,并对各个测试结果执行所需的操作,例如存储冻结帧/拓展帧。所有监控器和BSW模块使用EventId作为符号化的EventName来管理诊断事件。

getusushu的博客 1508

Linux Document免交互和Expect自动化交互

Linux Document免交互和Expect自动化交互 一、Here Document 免交互 使用I/O重定向的方式将命令列表提供给交互式程序或命令,比如ftp、cat或read命令。 是标准输入的一种替代品可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地生成出一个“文件”并用作“命令”的标准输入。Here Document 也可以与非交互式程序和命令一起使用。 语法格式: 命令 &lt;&lt;标记 ... 内容 #标记直接是传入内容 ... 标记 注意: 标记可以使用任意合

Guiled7的博客 415

【雷达】一维和二维自适应波束形成(DBF))DBF附matlab代码

1 简介 数字波束形成技术是天线波束形成原理与数字信号处理技术相结合的产物,其广泛应用于阵列信号处理领域.由于电磁工作环境的恶化和大量射频干扰的存在,在极低的信干噪比(SINR)条件下进行目标检测和信息提取十分困难.对于阵列系统,往往采用自适应数字波束形成(ADBF)技术,来抑制强干扰和方向性干扰对有用信号的影响.介绍了数字波束形成器的基本原理及其DSP的实现结构.​ 2 完整代码 clc;clear all;close all;%%%%%%%%%%%%%%%%%一维DBF%%%%%%%%%%%%%

qq_59747472的博客 7265

shell——expect免交互

目录1. Here Document概述1.1 注意参数:1.2 举例:1.2.1 例1:通过read命令接受输入并打印1.2.2 例2:挂载光盘:1.2.3 例3:通过passwd给用户设置密码1.2.4 例4:关闭变量替换功能2. Expect概述2.1 Expect安装2.2 基本命令2.3 语法2.3.1 单分支语法2.3.1 多分支语法2.4 举例:2.4.1 例1:登录ssh2.4.2 例2:创建用户并设置密码2.4.3 例3:利用Expect完成FTP登陆过程 1. Here Document

与之二三事、 537

visio安装包

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex&trade;-M4F 内核的信息,请参见《Cortex&trade;-M4F 技术参考手册》。

WeChatMsg 微信聊天记录导出指南:快速导出成 HTML、Word、CSV

旧笔记本要重装系统,几年的微信记录还躺在 C 盘的数据库文件里。WeChatMsg 是微信聊天记录导出工具,读取微信 PC 端数据库,把聊天记录导出成 HTML、Word、CSV 文件,全程在本机完成,数据不出电脑。 ## 先看到结果 跑通一条微信聊天记录导出命令后,你会看到类似这样的输出: - `已找到联系人:重要联系人` - `解析完成:12,486 条消息` - `导出成功:重要联系人

gitblog_00332的博客 320

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Here Document免交互和Expect

使用I/0重定向的方式将命令列表提供给交互式程序或命令,比如ftp、cat或read命令是标准输入的一种替代品可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地生产出一个“文件"并用作“命令”的标准输入Here Document 也可以与非交互式程序和命令一起使用。

2301_81272194的博客 1244

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an &ldquo;advanced algorithms&rdquo; book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

linux expect详解

原文地址:https://www.cnblogs.com/mingyunrangwozoudaoxianzai/p/11208887.html expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。 expect自动交互流程: spawn启动指定进程---expect获取指定关键字---send向指定程序发送指定字符---执行完成退出....

SeaSky_Steven的博客 470

goexpect 深度实战:在 OpenShift origin 中构建 Expect 自动化交互测试(Telnet/SSH/批处理/自定义 Spawner)

本篇技术指南围绕本仓库中 vendored 的 [goexpect](https://link.gitcode.com/i/ec95407a5acc66fef0c82e2d1f10ab6a) 库展开,讲解如何在 Go 程序中复刻经典 Tcl Expect 的交互式自动化能力:驱动本地进程、SSH 会话、Telnet 会话,通过正则匹配输出并回发命令。文中完整继承了官方 README 的选项说明与全

gitblog_01040的博客 374

Linux917 shell:while read ip pass;do /usr/bin/expect<-EOF expect eof EOF done<ip.txt;grep -w

1.铲2.新建虚拟机3.shell4.密码5.rhcsa。

czhc1140075663的博客 1259

Shell编程之免交互(EOF免交互、Expect免交互)

一、Here Document免交互 (以标签的形式实现免交互,标签里面的字符可以自行定义) (一)、Here Document概述 使用I/O重定向方式将命令列表提供给交互式程序 标准输入的一种替代品 语法格式 命令 &lt;&lt;标记(EOF) … (标记之间是传入的内容) … 标记(EOF) (二)、Here Document使用注意事项 标记可以使用任意合法字符(大写字母)(EOF、FOE,前后要一致) 结尾的标记一定要顶格写,前面不能有任何字符

m0_63761361的博客 751

Shell脚本自动化交互:三种密码自动输入方案详解与安全实践

在Linux运维与自动化部署中,Shell脚本是实现批量操作和任务自动化的核心技术。其核心原理在于通过命令行解释器执行预定义的指令序列,从而替代重复性人工操作,显著提升效率与一致性。这一技术的核心价值在于将复杂的系统管理、软件部署和日常维护工作流程化、标准化,是构建高效运维体系与CI/CD流水线的基础。然而,当脚本需要与需要交互式输入(如密码认证)的命令行工具(如sudo、ssh)结合时,自动化流程往往会中断,这便构成了自动化交互的‘最后一公里’难题。针对这一普遍痛点,本文聚焦于解决Shell脚本中自动处理

weixin_30879833的博客 355

教你如何在Linux中通过expect工具实现脚本的自动交互

expect是建立在tcl基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信.1安装expect工具expect是建立在tc...

运维派 239

Linux:shell之编程免交互

Linux:shell之编程免交互

2301_76875445的博客 594

linux异常(六):expect错误 bash: spawn: command not found;couldn‘t read file

该问题出现的根源是:在执行脚本时,用的是#. file.exp(错误运行方法) 而不是 #./file.exp(正确运行方法)。 问题就出在这个斜杠上。

血煞长虹 的专栏 5666

告别X11依赖!ydotool:跨显示协议的Linux输入自动化终极指南

还在为Wayland环境下的自动化操作发愁吗?传统工具在新时代显示协议面前纷纷失效,而**Linux输入自动化**的解决方案就在眼前!ydotool作为一款不依赖X11的命令行自动化工具,正在成为Linux系统自动化操作的新宠。 ## 场景一:跨协议兼容性难题,如何一劳永逸? ### 痛点分析:X11的局限与Wayland的挑战 随着Linux桌面环境逐渐从X11转向Wayland,许多依赖X

gitblog_00445的博客 969
上一篇: 数据库函数依赖和范式理论学习总结
下一篇: 生成任意大小文件
国服第l帅
博客等级 码龄12年 26粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值