linux expect 中传入退出码来判断进程的执行情况

OpenClaw Skills:可编程、可组合、可部署的自动化执行单元 Skills 是现代自动化系统的核心抽象,指将重复性操作(如 Shell 命令、ADB 调试、NPM 构建)封装为具备参数校验、错误重试、日志追踪和结构化输出的最小可执行单元。其原理源于 DevOps 中的‘基础设施即代码’与‘能力即服务’思想,通过声明式 YAML 定义输入/输出契约,实现跨环境一致性执行。技术价值在于打破命令行脚本难复用、本地自动化难协同、运维逻辑难沉淀三大断层,显著提升工程复用率与团队协作效率。典型应用场景涵盖安卓设备批量管控、CI/CD 工具链集成、企业级服务部署及办公消息自动推送。 阅读详情

expect是linux里面用于交互式输入命令的
但expect中间可能要做比较多的判断,判断返回值是否成功或者失败来确定是否继续朝下执行。给一个简单的case.

/usr/bin/expect <<EOF
spawn ssh root@ip
expect {
			"expect success message" {
			       send "echo success\n";
			       exit 0;
			       exp_continue;
			}
			"expect error message" {
			       send "echo failed \n";
			       exit 1;
			       exp_continue;
			}
}
EOF
if [ "$?" -ne 0 ]; then
	echo "failed"
	exit 1;
else
	echo "success"
	exit 0;
fi
嵌入式Linux Shell脚本开发实战:从基础语法到系统监控与自动化 Shell脚本作为Linux系统的核心自动化工具,其本质是通过命令行解释器执行一系列系统命令和程序,实现任务自动化与系统管理。在嵌入式Linux开发领域,Shell脚本因其零运行时开销、与内核及硬件直接交互的高效性,成为资源受限环境下实现系统初始化、外设控制和状态监控的首选技术。其技术价值在于能够将复杂的硬件操作和系统管理流程封装为可重复执行的自动化脚本,显著提升开发效率和系统可靠性。在嵌入式应用场景中,Shell脚本广泛应用于启动流程定制、自动化测试、日志分析、设备监控与自愈等关键环节。本文聚焦于嵌入式S 阅读详情

相关推荐

Python调用Shell脚本:从os.system到subprocess的实战指南

在自动化运维和数据处理中,进程间通信是关键技术之一,它允许不同程序或脚本协同工作。其核心原理是通过操作系统提供的接口创建子进程并管理其输入输出。Python作为胶水语言,通过调用Shell脚本,能够将自身强大的逻辑处理能力与Shell的系统级操作优势结合,显著提升自动化任务的效率和灵活性。这种技术广泛应用于数据处理流水线、系统管理、CI/CD等场景。本文聚焦于Python调用Shell的两种核心方法:简单易用的os.system和功能强大的subprocess模块,深入解析其进程通信机制、安全陷阱和性能考量

weixin_33713350的博客 372

【转】Linux expect详解

随处可见的expect 第一次见expect这个命令还是我第一次参加全量上线的时候,那是公司的一个牛人用Shell脚本写的一套自动部署、MD5 比对、发布的全量上线工具,没事的时候,看了下其中的几个脚本,好多的expect命令。实在是看不懂这个expect命令的用法,所以就找时间总结了这篇关于expect命令的文章。 先抛出一个问题 现在有两台Linux主...

阿基米德来了的博客 362

Postman+Newman+Jenkins+Allure构建CI/CD自动化接口测试流水线实战

接口测试是保障软件质量的关键环节,其核心在于验证不同系统组件间数据交换的正确性与可靠性。随着敏捷开发和DevOps的普及,传统手动测试已无法满足快速迭代的需求,自动化测试成为必然选择。通过将测试用例脚本化并集成到持续集成/持续交付(CI/CD)流程中,可以实现每次代码提交后的自动验证,从而快速反馈、降低风险、提升交付效率。本文聚焦于如何利用Postman这一广泛使用的API测试工具,结合其命令行运行工具Newman、自动化服务器Jenkins以及测试报告框架Allure,构建一套完整的、无人值守的接口自动化

weixin_34038293的博客 731

expect进行scp传输文件

允许expect继续向下执行指令meout:指定超时时间,过期则继续执行后续指令。还没开始传输 就进行到EOF处,结束了交互,于是我们添加一个参数就可以了。因为输入完密码后要进行传输文件,虽然文件不大但是他需要时间去传输。执行后我们发现并没有传输文件这是为什么呢。经过我细心研究下发现 问题出现在了这里。就是exp_continue参数。加上参数后就执行成功传输文件啦。记录下困扰我半天的小问题。这个是脚本内容执行后。

weixin_72651815的博客 462

C/C++ assert宏深度解析:从预处理魔法到自定义断言系统

在C/C++编程中,断言是契约式编程思想的重要实践工具,用于在开发阶段验证程序假设。其核心原理基于条件编译,通过NDEBUG宏控制断言在发布版本中的完全移除,实现零运行时开销。标准assert宏利用预处理器的字符串化运算符和预定义标识符,能在断言失败时精准定位错误位置。这种设计体现了快速失败策略的技术价值,能有效暴露程序内部bug,防止错误状态蔓延。在应用场景上,assert适用于验证函数前置条件、后置条件和循环不变式等程序内部契约,但不应用于处理用户输入或I/O错误等预期运行时错误。通过理解assert的

weixin_33787529的博客 478

Postman接口测试全流程实战:从入门到自动化与CI/CD集成

接口测试是验证软件模块间通信、保障系统稳定性的关键技术环节。其核心原理在于模拟客户端请求,验证服务端响应的正确性、性能及安全性。在工程实践中,高效的工具能大幅提升测试效率与协作质量。Postman作为一款集图形化请求构建、自动化测试脚本、环境变量管理于一体的工具,通过支持数据驱动测试、断言验证和接口关联,实现了从单接口调试到复杂场景自动化测试的覆盖。它尤其适用于API开发、微服务测试及持续集成流程,能有效解决手动测试效率低下、多环境配置繁琐等痛点。本文结合参数化与Newman命令行工具等实战技巧,深入讲解如

weixin_34185512的博客 433

expect传入参数和程序执行命令不成功问题

1.expect 关键字 send: 向进程发送字符串,用于模拟用户的输入。注意一定要加\r回车 expect: 从进程接收字符串 spawn: 启动进程(由spawn启动的进程的输出可以被expect所捕获) interact: 用户交互 2.如何向expect脚本传入参数 set <变量名称> [lindex $argv <param index>] 注意下标从0...

my_live_123 3713

Windows/Linux双平台指南:3种方法快速释放被占用的GPU内存(含任务管理器替代方案)

本文详细介绍了在Windows和Linux双平台下快速释放被占用GPU内存的3种方法,包括任务管理器替代方案。从基础操作到高阶技巧,帮助用户彻底解决GPU内存驻留问题,提升计算资源利用率。特别适用于深度学习开发者和服务器管理员处理显存泄漏等常见问题。

j0k1l2m3n的博客 262

expect使用技巧

1) 获取命令行参数,例如通过./abc.exp a1 a2执行expect脚本 set 变量名1 [lindex $argv 0] 获取第1个参数a1 set 变量名2 [lindex $argv 1] 获取第2个参数a2 2)函数中使用外部变量 例如在函数外部定义了变量va:  set va "", 现在现在某个函数中使用,需要通过全局范围限定符进行引用,即$::va,如果进行

fish的专栏 1万+

AI漫剧实战:MiniMaxH3本地部署+ComfyUI工作流,6G显存出长视频

随着AI视频生成技术的普及,创作者开始追求在有限硬件条件下的本地化部署。本地部署不仅降低使用成本,更能获得对生成流程的完全可控性,这为高频次的内容生产提供了基础。以开源工作流引擎ComfyUI为依托,通过量化模型与显存优化,即便是6G显存的中端显卡也能流畅运行MiniMaxH3视频生成模型,输出60秒级别的AI漫剧片段。本文从视频生成原理出发,讲解模型选择、节点搭建、参数调优与提示词结构化设计,并延伸到剧本拆分、角色一致性控制、后期合成及平台变现路径,为AI漫剧创作者提供一套低成本、可复制的工程化方案。无论

weixin_29051149的博客 159

用C#和MQTTnet在WinForm里做个简易物联网监控后台(附完整源码)

本文详细介绍了如何使用C#和MQTTnet库在WinForm中构建一个简易物联网监控后台。通过实战案例,包括环境配置、MQTT服务端实现、客户端监控功能及高级优化技巧,帮助开发者快速搭建高效的物联网监控系统,适用于工业自动化和智能家居场景。

weixin_29540599的博客 392

Linux系统中Shell脚本之函数、数组及免交互

判断上次输出结果中是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回;只能捕捉有swpan启动的进程输出;expect [选项] [ -c cmds ] [ [ -[f|b] ] cmdfile ] [ args ]expect 默认的超时时间是10秒,通过set 命令可以设置会话超时时间,若不限制超时时间则应设置为-1。expect eof 表示交互结束,等待执行结束,退回到原用户,与spawn对应。数组名=([0]=value [1]=value1 [2]=value2 ....)

yinglongdiwan的博客 874

【模型转换】将.mindir文件转换成.ms文件(Windows篇)

首先需要在MindSpore中训练好并经过评估可用的模型,可以以标准格式(例如onnx, mindir等)导出,得到.mindir模型文件(例如lenet.mindir)。为了将模型部署到自定义应用中,还需要将其转换为更为紧凑和高效的ms格式模型,用于在MindSpore-Lite环境中推理,这可以通过MindSpore Lite提供的模型转换工具converter_lite完成。

qq_42962847的博客 1425

GoogleTest异常捕获机制:从C++单元测试崩溃到稳定测试的完整指南

在C++单元测试中,异常处理是确保代码健壮性的关键环节。异常捕获机制基于C++标准异常处理原理,通过try-catch块实现对预期异常行为的验证。其技术价值在于提升测试的稳定性和可靠性,将可能导致进程崩溃的致命错误转化为可控的测试失败信息,从而增强对代码异常路径的覆盖能力。在应用场景上,该机制广泛应用于验证函数边界条件、处理资源分配错误以及测试系统崩溃恢复逻辑。本文聚焦于GoogleTest框架中的异常捕获与死亡测试(Death Test),深入解析其多层次的防御体系,包括测试用例生命周期隔离、信号处理和C

weixin_30740295的博客 413

华为防火墙双线路配置实战:5分钟搞定主备自动切换(含健康检查避坑指南)

本文详细介绍了华为防火墙双线路配置实战,包括主备自动切换和健康检查机制的优化技巧。通过智能健康检查机制,华为防火墙能实现毫秒级故障自动切换,确保网络高可用性。文章提供了从架构设计到实战配置的全流程指南,并分享了常见配置误区与解决方案,帮助中小企业快速搭建稳定可靠的网络架构。

weixin_30872337的博客 604

超声波传感器(CHx01) 学习笔记 Ⅲ-API介绍

超声波传感器(CHx01) API介绍

nicole088的专栏 1386

Java SSH连接实战:JSch库实现远程命令执行与文件传输

SSH(Secure Shell)是一种加密网络协议,用于在不安全的网络中提供安全的远程登录和命令执行服务。其工作原理基于非对称加密和对称加密相结合的方式,确保数据传输的机密性和完整性。在Java开发领域,SSH连接技术为自动化运维、分布式系统监控和远程服务器管理提供了核心支持。通过JSch这一纯Java实现的SSH2客户端库,开发者可以轻松集成SSH功能到应用程序中,实现远程命令执行、安全文件传输(SFTP)和端口转发等高级功能。本文聚焦于JSch库的实战应用,详细解析如何通过Java代码建立SSH连接、

weixin_30706691的博客 394

【WRF实操】四层嵌套网格设计-以粤港澳大湾区GBA为例

四层嵌套网格设计-以粤港澳大湾区GBA为例

WW、forever的博客 820

把IDM的30天试用冻住:IDM-Activation-Script 冻结与激活脚本使用说明

IDM-Activation-Script(简称 IAS)是一个开源的 Windows 批处理脚本,专门用来冻结 Internet Download Manager 的 30 天试用期,让下载工具不再反复弹出激活提醒。它适合在 Windows 上长期依赖 IDM、又不想为许可证付费的个人用户,操作只需要几分钟。 ## 关键词 核心关键词:IDM 冻结试用期 长尾关键词:IDM 注册表锁定激活

gitblog_00684的博客 667

YOLO26改进策略【YOLO和Mamba】| 2024 VM-UNet,高效的特征提取模块VSS block 二次创新提高精度

VM-UNet模型设计的出发点是解决现有CNN-based和模型在医学图像分割中的局限性,利用(SSMs)的优势,提出一种更有效的医学图像分割模型。具体来说,CNN-based模型在捕捉长距离信息方面存在不足,而模型由于自注意力机制的二次复杂度导致计算负担较重。SSMs模型如Mamba不仅在建模长距离依赖方面表现出色,还具有线性计算复杂度,这为VM-UNet的设计提供了理论基础。

Limiiiing的博客 214

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C++单元测试实战:GoogleTest环境搭建与核心用法详解

单元测试是软件工程中保障代码质量、防止回归错误的核心实践,其原理在于通过隔离和验证代码的最小可测试单元来确保功能正确性。在C++开发领域,GoogleTest作为行业标杆测试框架,提供了强大的断言系统、测试夹具和模拟对象支持,其技术价值在于能显著提升代码的可靠性、可维护性,并促进持续集成流程。对于构建中大型C++项目或进行持续集成(CI)的团队,掌握GoogleTest的集成与使用至关重要。本文聚焦于实战,详细解析了通过源码集成、CMake FetchContent等主流方式将GoogleTest融入C++

weixin_33892359的博客 385

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

用Rust打造PDF压缩合并命令行工具:原理与实践

PDF作为一种复杂的容器格式,其压缩与合并不是简单的文件拼接,而是涉及对象图重组、交叉引用表重建以及流资源重新编码的底层过程。对于频繁处理批量文档的开发者,命令行工具相比GUI或在线服务更具可控性与隐私优势,也更适合嵌入自动化流水线。Rust凭借单二进制分发、内存安全以及成熟的CLI生态,成为构建此类工具的合适载体。本文从PDF内部结构出发,解析压缩合并的技术难点,演示基于lopdf库的最小实现,并探讨在批量处理、CI集成、结构验证及常见问题排查中的工程实践,最后自然引入Presse这一将压缩与合并集于一身

weixin_30629653的博客 350

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

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

linux-centos-shell--Expect免交互(expect流程命令,内容命令,其他命令和expect的执行方式(直接执行和嵌入执行))

文章目录前言一、Here Document 免交互1.1 概述与格式1.2 使用注意事项1.3 示例1:通过read命令接受输入并打印1.4 示例2:通过passwd给用户设置密码1.5 Here Document变量设定1.5.1 变量替换1.5.2 变量设定1.5.3 关闭变量替换功能1.5.4去除每行前的TAB字符1.5.5 多行注释二:Expect概述2.1 Expect是建立在tcl基础上的一个工具,Expect是用来进行自动化控制和测试的工具。2.2:Expect安装2.3:基本命令(expe

BIGmustang的博客 942

Linux学习之expect操作详解

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

jh035的博客 1万+

linux(九)—shell 服务器之间的交互 expect 的基本用法

1:expect 自动应答 tcl 语言 实现远程登录到其他主机进行操作 2:检测是否安装expect程序 检测是否安装命令:yum list|grep expect 安装成功有如下图箭头所示表示已安装 安装命令:yum -y install expect 3:expect 语法如下: #!/usr/bin/expect # 使用set来定义变量 使用$ip来获取变量 set ip 192.168.195.11 # 使用spawn 单词开启一个程序 spa...

xiaoqiang65的博客 930
上一篇: paramiko执行较长时间出现卡住的情况记录
下一篇: 查看进程跑了多长时间
幽默的荆轲君
博客等级 码龄10年 122粉丝 295原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值