expect的简单使用,linux交互性shell

2023-10-07 06:10

本文主要是介绍expect的简单使用,linux交互性shell,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

expect的学习使用触发自一个项目,项目平台是树莓派三代,要求是要在root用户下面执行一个名为61850Svr的程序。



1:首先需要你的运行环境中已经安装好了expect,怎么安装不说了。


2:对expect的理念认知:

①:expect是单独的一种脚本语言工具。expect不是/bin/sh,也不是/bin/bash,他是linux用于模拟人机交互行为的程序,他是一个默认安装于/usr/bin下的程序。


②:作为模拟交互,那么自然是模仿人机的交互动作,expect的流程就是按照这个思路来的。概括一下人在操作linux时的动作:

                壹:人输入rm xxx、cp xxx、su...等命令,回车。

   贰:机器返回执行信息结果。

                 叁:人根据返回信息继续选择“”yes、no“或者接着输入rm xxx,cp xxx等命令,或不在继续。


③:交互的双方默认是expect脚本和机器内核,字符终端只作为中间载体。


④:所谓交互命令特指su、ssh、tftp等命令,这些命令在启动后需要和“人”进行交互,而单纯的echo “xxx”、ls -all这些其实并没有交互的要求,没有必要用expect,该篇主要针对的是交互需求命令。

3:对expect语法的认知:

①:需要#!/usr/bin/expect作为起始行

②:expect的几个关键语法标示:

壹:spawn   //expect脚本中用于向机器发出首个linux命令用,该命令将在系统中创建一个进程

贰:expect   //expect脚本中用于等待和分析机器执行结果用

叁:send      //expect脚本中用于模仿“人"向机器进程发出linux命令用

肆:send_user    //expect脚本中用于直接向中间载体-字符终端发送信息用

伍:interact    //expect脚本中用于将交互双方由expect脚本和机器内核改为——>字符终端和机器内核(即为正常人和机器交互的模式)

4:expect(交互命令流程图示,以登录root为例)


5:样例




这篇关于expect的简单使用,linux交互性shell的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/156545

相关文章

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令