免交互(粗糙版)

2023-11-07 12:45
文章标签 交互 粗糙

本文主要是介绍免交互(粗糙版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

免交互:

交互是:计算机播放器,需要放视频,我发出指令,计算机执行指令,做出相应的动作。比如说播放视频音频的动作

Linux系统中的交互是,例如:passwd

尤其在shell脚本中,我们的运行就是免交互,自动化运维

免交互有两种方式:

here Document 免交互

expect语法实现免交互

here Document 免交互

语法格式:

命令 << 标记(可以自定义)

内容

标记

例如:

wc -l <<ky01

123

ky01

1.标记名称可以自定义,但是必须要是合法字符(字母开头,后面跟数字,不要用特殊符合)

2.结尾标记一定要顶格写,前面不能有任何字符,包括空格

3.结尾的标记后面也不能有任何字符,包括空格

4.开头标记前面如果有空格,会被省略

echo方法:实现查看和重定向输出到指定的文件

cat方法:实现查看和重定向输出到指定的文件

更改密码方法:

cat重定向追加:

tee方法:重定向输出

字符变量重定向

整行字符变量重定向

关闭变量功能

忽略tab键但是不会忽略空格键:

expect:建立在tcl语言基础上的一个工具,用于自动化控制和测试,主要用来解决shell当中的交互问题

PS:此命令需要安装:yum -y install expect

passwd

123

123

转义字符:

1.\n表示换行符

2.\t表示制表符和tab差不多

3.\r表示回车,可以和\n通用

4.\b表示退格符,相当于backspace

第一步:必须要声明

用此方法必须用以下声明

而且使用此脚本方法

必须要赋权执行

chmod 777 文本

第二步:

开启跟踪执行的命令:

spawn开启一个回话和启动进程,并且跟踪后续的交互信息

例如:spawn passwd lmn

第三步:

捕获动作

expect捕获想要的内容,匹配输入字段。然后输入内容

第四步:

发送指令

send 向进程发送字符串,模拟用户的输入send不能自动换行,一般后面要跟上\r或\n

格式:

expect “新的密码:” {send"123\r"}

如果命令写在一行必须要加花括号

方式二:

expect “新的密码:”

send"123\r"

多分支:

expect

{

“密码1”{send "123\r"}

“密码2”{send "123\r"}

}

第五步:

定义结束符:

第一种:expect eof:表示交互结束之后,会退回到原用户

第二种:interact:表示执行完成之后,保持现有状态不变

结束符只能二选一,不能同时存在

参数设置:

set 设置命令

set timeout 5

设置脚本的超时时间5秒

因为脚本默认是10秒

exp_continue

相当于在expect捕获判断之后,还能够继续向下匹配

类似于continue。表示允许expect继续向下执行指令

此次需要填写内容

以下内容全部更改。暂时不想写了

打印功能:回显命令

此处需要填写内容

接受参数:

可以接受从bash的命令行传入的参数,类似与位置变量的格式

此次需要填写内容

执行方式:

不能用bash sh source 都不能执行expect脚本,必须赋权之后用./或者绝对路径执行

实验:su切换用户,用传参的方式写:

嵌入执行模式:

将expect的过程融入shell当中,一起执行

#!/bin/bash

在中间免交互的过程

/usr/bin/expect <<-EOF

ssh免交互登录脚本

用传参的方式写,判断

No route to host

这种输出是IP地址有误

Connection refused

这种输出是连接拒绝

正常情况就传参就行

答案:

实验:免交互实现硬盘分区和创建文件系统和挂载

这篇关于免交互(粗糙版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

Kubernetes 之 kubelet 与 CRI、CNI 的交互过程

序言 当一个新的 Pod 被提交创建之后,Kubelet、CRI、CNI 这三个组件之间进行了哪些交互? Kubelet -> CRI -> CNI 如上图所示: Kubelet 从 kube-api-server 处监听到有新的 pod 被调度到了自己的节点且需要创建。Kubelet 创建 sandbox 并配置好 Pod 的环境,其中包括: Kubelet 通过 gRPC 调用 C

【SpringMVC学习07】SpringMVC与前台的json数据交互

json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在springmvc中,也支持对json数据的解析和转换,这篇文章主要总结一下springmvc中如何和前台交互json数据。 1. 两种交互形式  springmvc和前台交互主要有两种形式,如下图所示: 可以看出,前台传过来的方式有两种,一种是传json格式的数据过来,另一种

【Qt】Qt与Html网页进行数据交互

前言:此项目使用达梦数据库,以Qt制作服务器,Html制作网页客户端界面,可以通过任意浏览器访问。 1、Qt与网页进行数据交互 1.1、第一步:准备qwebchannel.js文件 直接在qt的安装路径里复制即可 1.2、第二步:在Qt的.pro文件加载webchannel组件 在.pro文件添加如下组件: QT += core gui sql webchannel wi

android 的webView加载h5,和h5的交互(java和JavaScript的交互)

Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本。本文将介绍如何实现Java代码和Javascript代码的相互调用。(通俗点说就是,点击那个Web页面的按钮啥的,可以传到原生app;或者原生app调用Web页面的js方法) 如何实现 实现Java和js交互十分便捷。通常只需要以下几步。 WebView

Java-IDEA模拟一个Redis服务器,与Redis客户端进行一次简单的交互。默认端口号:6379

首先要了解Redis的交互协议。 摘抄: 简单字符串(Simple Strings): 以 “+” 开头,例如 “+OK\r\n” 表示一个成功的响应。错误(Errors): 以 “-” 开头,例如 “-ERR unknown command\r\n” 表示一个错误响应。整数(Integers): 以 “:” 开头,例如 “:1000\r\n” 表示整数1000。批量字符串(Bulk St

Result 和 自定义异常 在前后端交互中的作用

Result 和自定义异常在前后端交互中扮演着重要的角色。它们可以帮助我们规范化接口返回值,提高错误处理的可读性和可维护性。 Result的作用 Result通常是一个封装了请求结果的类,它包含了请求的状态码、消息和数据。在前端和后端的交互中,Result的作用主要体现在以下几个方面: 统一返回格式:通过Result类,后端可以将请求的结果统一封装成一个固定的格式返回给前端,这样前端可以更

使用Node-API实现跨语言交互开发流程

一、前言         使用Node-API实现跨语言交互,首先需要按照Node-API的机制实现模块的注册和加载等相关动作。 ArkTS/JS侧:实现C++方法的调用。代码比较简单,import一个对应的so库后,即可调用C++方法。 Native侧:.cpp文件,实现模块的注册。需要提供注册lib库的名称,并在注册回调方法中定义接口的映射关系,即Native方法及对应的JS/ArkT

flutter的入口和原生交互

从今天起,笔者要开始从flutter列表页面向原生页面跳转了 首先遇到了N个No such module "Flutter" 因为笔者的公司其实是从前往后改造Flutter的,所以也不需要引擎组,但是笔者搞不懂,只能照着葫芦画瓢,以后等笔者Flutter技术日渐精进,一定回过来更新怎么单个页面嵌入flutter。 在Appdelegate里还有很多_lifeCycleDelega