免交互简单操作

免交互

交互:我们发出指令控制程序的运行,程序在接收到指令后按照指令的效果作出对应的反应

免交互:间接的,通过第三方的方式把指令传给程序,不用直接下达指令

Here Document免交互

这是命令行格式,也可以写在脚本当中,通过l/O重定向的方式将命令的列表传送给交互程序或者命令。

是标准输出的一种替代品,代替了人工的输入方式

语法格式

命令(linux的系统命令)<<标记

内容1

内容2

内容3

标记

wc -l <<xy102
> 123
> 456
> 789
> xy102
3

注意事项:
1、标记可以是任意合法字符(一般不用特殊字符,不以数字带头,通常以EOF作为默认的标记位)

2、结尾的标记一定要顶格写,且前面不能有任何字符,空格也不行

3、结尾的标记后面也不能有空格

4、开头的标记前后的空格都会被省略掉

文件插入 两种方式 tee

[root@test1 opt]# cat <<EOF>>test1.txt
> 123
> 456
> 789
> EOF
[root@test1 opt]# cat test1.txt 
123
456
789
[root@test1 opt]# tee test2.txt <<EOF
> 1
> 2
> 3
> 4
> 5
> 6
> EOF
1
2
3
4
5
6
[root@test1 opt]# cat test2.txt 
1
2
3
4
5
6

引入变量

file="test1.sh"
i=school
cat >$file <<EOF
I am going to $i
EOF
sh 1.sh 
[root@test1 opt]# cat test1.sh 
I am going to school

整体变量赋值

 vim 2.sh 

var="Great! I am going to school"
myvar=$(cat <<EOF
this is monday
$var
EOF
)
echo $myvar
运行脚本
sh 2.sh 
this is monday Great! I am going to school

关闭免交互

 vim 2.sh 

var="Great! I am going to school"
myvar=$(cat <<'EOF'
this is monday
$var
EOF
)
echo $myvar
sh 2.sh 
this is monday $var

Expect实现免交互

用tcl语言写的一个工具,主要用于自动化控制和测试,解决shell脚本交互的问题

rpm -q tcl expect

wh

转义符

\n:换行

\r:回车

\t:相当于tab键

\b:表示退格,删除

先安装软件

先赋权文件, ./才可以执行

./passed.sh

!/ure/bin/expect

声明解释器

set timeout 5

set设置timeout超时时间 默认是十秒设置超时时间五秒

set 也可以作为设置变量

spawn

后面需要执行的命令,开启会话过程,并跟踪后续的免交互信息

expect “新的密码:”

捕获需要执行的命令行,只要能够捕获即可,不需要完整的,可以用*代表所有

send “abc123\r”

输入指令代码

expect “重新输入新的密码:”

send “abc123\r”

结束语只能写一个

expect eof

交互指令结束后,会退回原用户,切换之前的用户

interact

留在当前用户

#!/usr/bin/expect

# 设置超时时间为5秒
set timeout 5
# 执行更改用户dn的密码命令
spawn passwd dn
# 期待 "新的 密码:" 提示
expect "新的 密码:"
# 输入新密码(假设密码是 "abc123")
send "abc123\r"
# 期待 "重新输入新的 密码:" 提示
expect "重新输入新的 密码:"
# 再次输入新密码
send "abc123\r"
# 期待命令结束
expect eof

赋权
chmod 777 test1.sh 
执行
 ./test1.sh 
spawn passwd dn
更改用户 dn 的密码 。
新的 密码:
无效的密码: 密码少于 7 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新

切换用户

设置超时时间

sed_user “ok”

sed_user = echo 打印指定内容

在这里插入图片描述

#!/usr/bin/expect
set timeout 5#设置超时时间
set username [lindex $argv 0]
set password [lindex $argv 1]
将用户和密码分别赋给这两个变量
spawn su - $username
expect "密码"
send "$password\r"
expect "~]$"
send_user "ok"
expect eof

对文件进行赋权
chmod 777 su.sh 
[root@test1 opt]# su test1
[test1@test1 opt]$ ./su.sh dn abc123
spawn su - dn
密码:
[dn@test1 ~]$ ok[test1@test1 opt]$ 

嵌入执行模式

在shell当中加入expect,涉及到环境切换的场景不建议使用嵌套模式

ssh su不适合使用嵌入模式

在这里插入图片描述

#!/bin/bash
user=$1
password=$2
useradd $user
/usr/bin/expect <<EOF
spawn passwd $user
expect "新的"
send "password\r"
expect "重新"
send "password\r"
expect eof
EOF
 sh qiantao.sh mmm 123
spawn passwd mmm
更改用户 mmm 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 它基于字典单词
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

ssh免密登录

连接固定主机

1、设置变量

在这里插入图片描述

连接主机

在这里插入图片描述

免交互实现硬盘分区

分完区

第一步要格式化

第二步实现挂载,手动挂载

在分区创建文件 写入“学习真好” 打印结果

简单的操作流程

#!/bin/bash

/usr/bin/expect <<EOF
#设置分区
spawn fdisk /dev/sdd
expect "输入 m 获取帮助"
send "n\r"
expect "(default p): "
send "\r"
expect "(1-4,默认 1):"
send "\r"
expect "(2048-41943039,默认为 2048):" 
send "\r"
expect "(2048-41943039,默认为 41943039):" 
send "\r"
expect "输入 m 获取帮助"
send "w\r"

expect eof
EOF
#刷新
partprobe
#创建文件系统
mkfs.xfs -f /dev/sdd1
#创建目录
mkdir /opt/test4
#设置挂载点
mount /dev/sdd1 /opt/test4
echo "学习真好" > /opt/test4/test2.txt
cat /opt/test4/test2.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/765163.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CVE-2024-0603 漏洞复现

CVE-2024-0603 源码&#xff1a;https://gitee.com/dazensun/zhicms 开题&#xff1a; CVE-2024-0603描述&#xff1a;ZhiCms up to 4.0版本的文件app/plug/controller/giftcontroller.php中存在一处未知漏洞。攻击者可以通过篡改参数mylike触发反序列化&#xff0c;从而远程…

Dockerhub无法拉取镜像配置阿里镜像加速器

打开阿里镜像加速地址&#xff1a; https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 根据平台类型按照对应方式进行配置&#xff1a;Dokcer Desktop是在右上角点开配置 找到Docker Engine 进行设置JSON结构&#xff1a; 记得要重启Docker服务才会生效&#xff01…

无偏归一化自适应心电ECG信号降噪方法(MATLAB)

心电信号作为一种生物信号&#xff0c;含有大量的临床应用价值的信息&#xff0c;在现代生命医学研究中占有重要的地位。但心电信号低频、低幅值的特点&#xff0c;使其在采集和传输的过程中经常受到噪声的干扰&#xff0c;使心电波形严重失真&#xff0c;从而影响后续的病情分…

WSO2 products 文件上传漏洞(CVE-2022-29464)

前言 CVE-2022-29464 是一个影响多个 WSO2 产品的严重远程代码执行&#xff08;RCE&#xff09;漏洞。这些产品包括 WSO2 API Manager、WSO2 Identity Server 和 WSO2 Enterprise Integrator 等。由于用户输入验证不当&#xff0c;该漏洞允许未经身份验证的攻击者在服务器上上…

修改Springboot项目名称

修改Springboot项目名称 1. 整体描述2. 具体步骤2.1 修改module名称2.2 修改程序包名2.3 mybatis/mybatis-plus配置修改2.4 logback文件2.5 yml配置2.6 Application启动类2.7 其他 3. 总结 1. 整体描述 开发过程中&#xff0c;经常遇到新来个项目&#xff0c;需要一份初始代码…

平衡树专题Splay

写在前面&#xff1a; 部分来自孙宝&#xff08;Steven24&#xff09;的博客&#xff0c;表示感谢。 认识 什么是Splay 就是BST的一种&#xff0c;整体效率是很高的&#xff0c;均摊的次数是O(logn)级别的。 基本操作就是把节点旋转到BST的root&#xff0c;从而改善BST的平…

线性代数大题细节。

4.4 方程组解的结构&#xff08;二&#xff09;_哔哩哔哩_bilibili

无序中的秩序:为何看似混乱的工作方式可能更高效;刚刚!研究表明:混乱可能更有利于创造力;注意!你的过度整理可能正在浪费时间

当面对循规蹈矩&#xff0c;还是自由独立的选择题时&#xff0c;你应当选择自由独立。因为这样&#xff0c;你不但更省力&#xff0c;更省心&#xff0c;而且效率更高&#xff0c;生活更好。 在日常生活和工作中,经常会遇到两种截然不同的人: • 一种是事无巨细,将一切都安排得…

全面了解机器学习

目录 一、基本认识 1. 介绍 2. 机器学习位置 二、机器学习的类型 1. 监督学习 2. 无监督学习 3. 强化学习 三、机器学习术语 1. 训练样本 2. 训练 3. 特征 4. 目标 5. 损失函数 四、机器学习流程 五、机器学习算法 1. 分类算法 2. 聚类算法 3. 关联分析 4. …

红队工具Finger 安装具体以步骤-示例centos

1.git clone https://github.com/EASY233/Finger.git 如果没有 yum install git 2.pip3 install -r requirements.txt 找到finger所在的文件夹 可以用find -name "Finger"进入文件中配置命令 前提要安装python yum install python-pip33.python3 Finger.py -h

Databend 开源周报第 151 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend。 支持递归调用 UD…

浅谈k8s中cni0和docker0的关系和区别

最近在复习k8s网络方面的知识&#xff0c;查看之前学习时整理的笔记和文档还有过往自己总结的博客之后发现一个问题&#xff0c;就是在有关flannel和calico这两个k8s网络插件的文章和博客中&#xff0c;会涉及到cni0和docker0这两个网桥设备&#xff0c;但是都没有明确说明他们…

新华三通用大模型算力底座方案:为AI时代注入强大动力

在人工智能技术日新月异的今天&#xff0c;大模型作为推动AI进步的重要驱动力&#xff0c;是百行百业不断追逐的热点。大模型以其强大的泛化能力、卓越的模型效果和广泛的应用场景&#xff0c;正改变着人工智能的未来。作为国内领先的ICT解决方案提供商&#xff0c;新华三集团凭…

【刷题汇总--牛牛的快递、最小花费爬楼梯、数组中两个字符串的最小距离】

C日常刷题积累 今日刷题汇总 - day0021、牛牛的快递1.1、题目1.2、思路1.3、程序实现1.4、程序实现(扩展) 2、最小花费爬楼梯2.1、题目2.2、思路2.3、程序实现 3、数组中两个字符串的最小距离3.1、题目3.2、思路3.3、程序实现3.4、补充0x3f3f3f3f 4、题目链接 今日刷题汇总 - d…

解码未来城市:探秘数字孪生的奥秘

在科技日新月异的今天&#xff0c;"数字孪生"&#xff08;Digital Twin&#xff09;这一概念如同一颗璀璨的新星&#xff0c;照亮了智慧城市、智能制造等多个领域的前行之路。本文将深入浅出地解析数字孪生的定义、技术原理、应用场景及未来发展&#xff0c;带您一窥…

亚马逊TM商标跟卖,同行截流采集,人工手动跟卖选品更方便!

区分TM标&#xff0c;软件自动查询&#xff0c;人工手动查询方便。 大家好&#xff0c;跟大家说下如何区分TM标。 选择相对于的站点&#xff0c;选择TM。 软件采集出来的已备案、未备案TMR标&#xff0c;现在点击TM标就会跳到美国商标局。 可以清晰的看到这个地方只有一个序…

电力授时设备常用:低功耗定位授时模块ATGM332D-5T

ATGM332D有5N微星定位模块系列和5T授时模块&#xff0c;其中我们今天要解读的是一款拥有高性能、低功耗、低成本优势且适用于各类授时设备并支持BDS/GNSS的定位授时模块ATGM332D-5T。 该系列模块产品是基于中科微第四代低功耗GNSS SOC单芯片—AT6558&#xff0c;支持多种微星导…

【实战】EasyExcel实现百万级数据导入导出

文章目录 前言技术积累实战演示实现思路模拟代码测试结果 前言 最近接到一个百万级excel数据导入导出的需求&#xff0c;大概就是我们在进行公众号API群发的时候&#xff0c;需要支持500w以上的openid进行群发&#xff0c;并且可以提供发送openid数据的导出功能。可能有的同学…

《昇思25天学习打卡营第1天|基本介绍》

文章目录 前言&#xff1a;今日所学&#xff1a;昇思MindSpore相关链接&#xff1a; 前言&#xff1a; 今天非常荣幸的收到了昇思25天学习打卡营的邀请。昇思MindSpore作为华为昇腾AI全栈的重要一员&#xff0c;他支持端、边、云独立的和协同的统一训练和推理框架&#xff0c;…

电脑录歌用什么软件好?分享电脑录音软件:6款

短视频普遍的今天&#xff0c;越来越多的人喜欢通过电脑进行音乐创作和录制。然而&#xff0c;面对市面上琳琅满目的电脑录音软件&#xff0c;很多人可能会感到困惑&#xff1a;电脑录歌用什么软件好呢&#xff1f;本文将为大家分享六款精选的录音软件&#xff0c;帮助大家找到…