免交互简单操作

news2024/11/19 22:46:27

免交互

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PointNet数据预处理+网络训练

PointNet数据预处理网络训练 数据预处理分类网络的训练分割网络训练分类和分割的结果 数据预处理 数据预处理&#xff0c;这里仅介绍一个shapenetdataset&#xff1b; class ShapeNetDataset(data.Dataset):def __init__(self,root,npoints2500,classificationFalse,class_ch…

没有手机怎么办呐!高考成绩出来了:请不要吹灭别人的灯——早读(逆天打工人爬取热门微信文章解读)

结婚的时候红包随礼随多少呢 引言Python 代码第一篇 洞见 高考成绩出来了&#xff1a;请不要吹灭别人的灯第二篇结尾 为什么是这个标题呢&#xff1f; 是因为摸鱼看足球直播 主播好兄弟结婚 他老婆问他要红包 引言 今天早上停电了 大概是在3点多的时候 我本身一直都没有开空调…

SAP-SD-修改字段描述

在销售订单中,想修改某字段名的描述,以客户组12为例,如下图 现在想把这个字段修改为客户组1,选择-F1 双击“数据元素” 双击 域 转到-翻译

移动硬盘删除的文件能恢复吗?一文揭晓答案!

“我很喜欢把重要的文件都存储到移动硬盘中&#xff0c;但今天在操作时误删了比较重要的一些文件。大家有什么方法可以帮我恢复里面的重要数据吗&#xff1f;” 在数字世界的浩瀚宇宙中&#xff0c;我们的每一份文件、每一张照片、每一个视频&#xff0c;都是一段珍贵的记忆&am…

修改 Linux 终端提示符的色彩与字体

1、引言 Linux 终端是许多开发者和系统管理员每天工作的主要工具之一。但你是否曾留意过那个位于命令行开头的提示符&#xff1f;是不是觉得它有点单调&#xff1f;别担心&#xff0c;本文将介绍如何通过修改提示符的颜色和字体&#xff0c;为你的 Linux 终端增添一抹独特的色…

昇思25天学习打卡营第二天|张量 Tensor

背景 华为组织了昇思25天学习学习营&#xff0c;提供免费算力&#xff0c;算力支持是昇腾Ascend 910芯片96G内存&#xff0c;很给力。 第一天的学习内容可以阅读文章&#xff1a; 昇思25天学习打卡营第一天|快速入门 学习内容 今天的学习内容是张量。如果线性代数学的好的同…

python - 运算符 / 条件语句 / 数字类型

一.运算符 >>> 5<3 False >>> 5<3 False >>> 5>3 True >>> 5>3 True >>> 53 False >>> 5!3 True 与操作and&#xff1a; >>> 5<3 and 2<4 False >>> 5>3 and 2<4 True 二…

解锁高效办公:ONLYOFFICE版本8.1新功能揭秘与个人使用体验

文章目录 &#x1f4af;ONLYOFFICE 桌面编辑器 8.1 ✍1 新增功能介绍✍2 轻松编辑器PDF文件&#x1f353;2.1 PDF新增编辑器操作&#x1f353;2.2 PDF新增表单操作 ✍3 用幻灯片版式快速修改幻灯片✍4 无缝切换文档编辑、审阅和查看模式✍5 改进从右至左语言的支持 & 新的本…

景联文科技构建高质量多轮对话数据库,赋能AI交互新飞跃

近年来&#xff0c;大语言模型的发展极大推动了自然语言处理领域的进步&#xff0c;大语言模型正引领智能对话领域进入一个全新时代&#xff0c;不仅提升了对话体验的自然度和效率&#xff0c;也为探索更加人性化、智能化的交互方式开辟了道路。 景联文科技作为大语言模型数据服…

【PB案例学习笔记】-24创建一个窗口图形菜单

写在前面 这是PB案例学习笔记系列文章的第24篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

【面试干货】Java中new与clone操作对象的比较

【面试干货】Java中new与clone操作对象的比较 1、new操作符创建对象的过程2、clone方法创建对象的过程3、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、new操作符创建对象的过程 new操作符在Java中用于创建对象&#xff0c;并执行…

MySQL索引优化解决方案--索引优化(4)

排序优化 尽量避免使用Using FileSort方式排序。order by语句使用索引最左前列或使用where子句与order by子句条件组合满足索引最左前列。where子句中如果出现索引范围查询会导致order by索引失效。 优化案例 联表查询优化 分组查询优化 慢查询日志

简约的服务器监控工具Ward

什么是 Ward &#xff1f; Ward 是一个简单简约的服务器监控工具。 Ward 支持自适应设计系统。此外&#xff0c;它还支持深色主题。它仅显示主要信息&#xff0c;如果您想查看漂亮的仪表板而不是查看一堆数字和图表&#xff0c;则可以使用它。 Ward 在所有流行的操作系统上都能…

SiLM585x系列SiLM5851NHCG-DG一款具有分离的管脚输出 单通道隔离驱动器 拥有强劲的驱动能力

SiLM585x系列SiLM5851NHCG-DG是一款单通道隔离驱动器&#xff0c;具有分离的管脚输出&#xff0c;提供3.0A源电流和6.0A灌电流。主动保护功能包括退饱和过流检测、UVLO、隔离故障报警和 2.5A 米勒钳位。输入侧电源的工作电压为3V至5.5V&#xff0c;输出侧电源的工作电压范围为1…

深度学习项目实例(一)—— 实时AI换脸项目

一、前言 人工智能&#xff08;AI&#xff09;技术的快速发展为各个领域带来了革命性的变化&#xff0c;其中之一就是人脸识别与图像处理技术。在这之中&#xff0c;AI换脸技术尤其引人注目。这种技术不仅在娱乐行业中得到广泛应用&#xff0c;如电影制作、视频特效等&#xf…

想要用tween实现相机的移动,three.js渲染的canvas画布上相机位置一点没动,如何解决??

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

Linux入门攻坚——27、httpd2.4配置使用、lamp基础

CentOS 7上&#xff0c;httpd已经到了2.4版本&#xff0c;新增了很多新特性&#xff1a; &#xff08;1&#xff09;MPM支持运行DSO机制&#xff1b;以模块形式按需加载 &#xff08;2&#xff09;支持event MPM&#xff1b; &#xff08;3&#xff09;支持异步读写&#xff1…

微服务+云原生:打造高效、灵活的分布式系统

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《未来已来&#xff1a;云原生之旅》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、云原生概述 2、微服务概述 二、微服务架构基础 1、…

ADS SIPro使用技巧之数据分坐标轴显示

在SIPro data display页面中显示数据时&#xff0c;逐个显示数据非常地麻烦&#xff0c;可读性也较差&#xff1b; 常规的做法&#xff0c;是将数据拖入到一个显示窗口中进行显示&#xff0c;但是&#xff0c;当数据量较多或者各数据之间的数值差异较大时&#xff0c;可视化效果…

大模型管理平台:one-api使用指南

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 大模型应用向开发路径&#xff1a;AI代理工作流大模型应用开发实用开源项目汇总大模…