Shell脚本攻略:expect脚本免交互

news2024/11/8 18:06:48

目录

目录

一、理论

1.Here Document

2.expect实现免交互

二、实验

1.实验一

2.实验二

3.实验三

4.问题


一、理论

1.Here Document

(1)概念

Here Document也被称为here-document/here-text/heredoc/hereis/here-string/here-script,在Linux/Unix中的shell中被广泛地应用,尤其在于用于传入多行分割参数给执行命令。除了shell(包含sh/csh/tcsh/ksh/bash/zsh等),这种方式的功能也影响和很多其他语言诸如Perl,PHP以及Ruby等。这篇文章以bash为例进行使用说明。


(2)使用方式和限制

使用格式如下所示:

命令 << 分隔串(最为常见的为EOF)
字符串1
…
字符串n
分隔串

使用限制:

分割串常见的为EOF,但不一定固定为EOF,可以使用开发者自行定义的,比如LIUMIAO
缺省方式下第二个分割串(EOF)必须顶格写,前后均不可有空格或者tab
缺省方式下第一个分割串(EOF)前后均可有空格或者tab,运行时会自动剔除,不会造成影响

(3)基本用法

统计行

read

添加密码    EOF(合法字符)

cat实现查看和重定向输出到指定文件

外部免交互

停止外部免交互


 

(4)<<- 与 <<的区别

使用<<-代替<<唯一的作用在与分割串所扩起来的内容,顶格的tab会被删除,用于ident。

 去掉每行的tab字符(空格键无效)

不输出

2.expect实现免交互

(1)概念

建立在tcl(tool command language)语言基础上的一个工具,常被用于进行自动化控制和测试,解决shell脚本中交互的相关问题,使用前需要安装(yum install  -y expect)。

(2)expect基本命令

命令功能
脚本解释器expect 脚本中首先引入文件,表明使用的是哪一种shell。expect的为:/usr/bin/expect
spawn命令用于捕捉关键词,后面常跟一个linux执行命令。
expect命令用于判断上层捕捉输出的结果是否有指定字符,有则立即返回,没有则默认等待10s。
exp_continue命令expect多分支判断时使用。
send命令expect命令判断完成需要返回时,发送需要交互的指令,想要传递给电脑的文字或字符,该命令不能自动回车换行,\n和\r是回车。
set命令可用于设置变量、设置expect超时时间,默认是10s。
set设置位置变量set password  [lindex $argv 0] ,设置时从0开始,执行脚本时在脚本后跟参数即可。
结束符expect eof 结束并返回原来环境,原来主机。
interact 结束但是不会返回原来的地方,保持当前状态,当前主机。

(3)安装expect

安装软件包

赋权执行

su切换用户

interact运行完保持

expect运行完退出

bash嵌套expect

⑥ ssh

二、实验

1.实验一

监控脚本写一个函数库,用定时任务调用这个函数库,每个月1号执行

(1)脚本截图

主函数

调用函数

(2)crontab计划任务

(3)运行结果

2.实验二

ssh免交互登录,如果密码出错,也使用免交互的方式实现自动完成

(1)脚本截图

(2)运行结果

密码输入错误

密码输入正确

3.实验三

使用fdisk给磁盘分区,格式化,挂载

(1)脚本截图

(2)运行结果

4.问题

linux系统或者掉盘的用户常常遭遇挂载磁盘报Structure needs cleaning(清理磁盘结构----格盘)的问题。

首先查看/dev/存储块是什么文件系统

在操作前请务必做好备份:

(1)ext4文件系统,使用命令  fsck.ext4 /dev/md0 修复,

(2)xfs文件系统,使用命令 xfs_repair -L /dev/md0修复,

一般情况修复后均可挂载,

但是如果磁盘有问题,或者阵列出问题时此种修复可能会失败,挂载时依然要求格盘,只能进行格盘了。

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

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

相关文章

MYSQL的卸载、下载、安装、配置一步到位(超详细教程)

MYSQL的卸载、下载、安装、配置一步到位(超详细教程) 一、卸载 1.控制面板卸载 全部卸载 2.卸载数据文件 在安装的时候会有安装地址和数据库地址 找到自己安装数据库的地址&#xff0c;删除MySQL里面的内容 3.删除环境变量 此电脑–>属性–>高级系统设置–>环境变量…

爬虫代理IP池怎么来的,可能遇到哪些问题,怎么解决

目录 前言 一、代理IP对爬虫工作的重要性 二、代理IP池从哪里来 三、爬虫工作中可能会遇到哪些问题 四、怎么解决遇到的问题 总结 前言 爬虫工作离不开代理IP的支持&#xff0c;代理IP在爬虫工作中发挥重要的作用&#xff0c;但爬虫代理IP池从哪里来呢&#xff0c;爬虫工…

【MS1023 串化器和 MS1224 解串器--10MHz 到 80MHz、10:1 LVDS 并串转换器(串化器)/串并转换器(解串器)无标题】

MS1023 串化器和 MS1224 解串器是一对 10bit 并串 / 串并转 换芯片&#xff0c;用于在 LVDS 差分底板上传输和接收 10MHz 至 80MHz 的并行字速率的串行数据。起始 / 停止位加载后&#xff0c;转换为负载编 码输出&#xff0c;串行数据速率介于 120Mbps 至 960M…

网络安全真的没法入行吗?——网络安全自学笔记

前言 十多年前还是高中生的时候开始搞安全的&#xff0c;刚开始是看大佬们在群里发黑页觉得很牛逼。然后慢慢开始学&#xff0c;当时还在网上问过IP和ID有什么区别&#xff0c;&#xff0c;&#xff0c; 后来慢慢开始学注入&#xff0c;日到了第一个站&#xff0c;是家卖钢琴…

freeswitch透传带SDP的180

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 freeswitch对于180/183的消息处理有默认的规则&#xff0c;但是在3GPP的标准中&#xff0c;消息流程会更加复杂&#xff0c;场景更多变。 这样就需要我们根据实际环境中的场景定制消息流程。 本文只讨论带SDP的183/18…

用代码创造童话,永葆快乐时光

前言 随着科技的不断发展&#xff0c;大家对于世界的认知也越来越广泛和深入。在这个数字化时代&#xff0c;编程语言已经成为了一种全新的语言形式&#xff0c;创造了一个全新的世界&#xff0c;也为人们带来了无限的可能性。当然&#xff0c;这些可能性不止局限于商业领域和技…

如何获得铁粉

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 很多博主都有一些困惑&#xff1a; 我写了一些博客…

【多线程】模拟实现一个定时器

1. Java自带的定时器 相信大家都定过闹钟&#xff0c;在我上学有早八的时候&#xff0c;硬是要定三个闹钟才起得来&#xff0c;7:20&#xff0c;7:30&#xff0c;7:40&#xff0c;那么我们今天所要实现的定时器&#xff0c;就类似于闹钟&#xff0c;设定多长时间之后&#xff0…

全网IPv6流量监控分析案例

前言 随着某学院IPv6网络的建设和应用投产&#xff0c;在不影响现有应用、网络及用户端的情况下&#xff0c;实时掌握IPv6网络运行状况、用户体验快慢、网络应用性能好坏及网络资源利用等需求已迫在眉睫。 学校率先采用IPv6全流量分析系统 NetInside率先推出支持IPv6的全流量…

高速电路PCB布线还有不会的吗?

数字电路很多时候需要的电流是不连续的&#xff0c;所以对一些高速器件就会产生浪涌电流。如果电源走线很长&#xff0c;则由于浪涌电流的存在进而会导致高频噪声&#xff0c;而此高频噪声会引入到其他信号中去。而在高速电路中必然会存在寄生电感和寄生电阻以及寄生电容&#…

pwn(1)-栈溢出(上)

熟悉栈溢出的原理熟悉栈溢出的防御方法学会栈溢出的利用方法学会栈溢出的奇技淫巧 栈溢出原理和防御&#xff08;一&#xff09; 栈的高地址在下低地址在上&#xff0c;先进入的数据压入栈底。 例如 #include <stdio.h> int add(int a,int b) {return ab; } int main…

一学就会----反转链表

文章目录 题目描述思路一思路二 题目描述 反转一个单链表。 图片示例&#xff1a; 思路一 其实&#xff0c;反转一个单向链表&#xff0c;我们可以看成是将链表中的每个结点的指向反向&#xff08;即从后一个结点指向前一个结点&#xff09;。 我们在考虑情况的时候&#xff0…

PHY6230国产蓝牙BLE5.2 2.4G SoC低成本遥控灯控芯片

PHY6230是高性价比低功耗高性能Bluetooth LE 5.2系统级芯片&#xff0c;集成32-bit高性能低功耗MCU&#xff0c;16KB OTP&#xff0c;8KB Retention SRAM和64KB ROM&#xff0c;可选EEPROM&#xff0c;适用多种PC/手机外设连接、遥控、灯控等场景。 特点&#xff1a; 高性能多…

Python数据攻略-Pandas的数据计算和清洗整理

大家好&#xff0c;我是Mr数据杨&#xff0c;今天带大家以《三国演义》为背景&#xff0c;探索Python数据处理的奥秘。 将眼光投向谋士们&#xff0c;他们就如同Python的算术运算和NumPy、SciPy函数&#xff0c;精准的计算和预测是他们的必备技能。比如&#xff0c;郭嘉分析敌…

使用 GMDH 进行时间序列预测

目录 主要命令 CreateTimeSeriesData FitPolynomial GetPolynomialLayer 分组数据处理方法&#xff08;GMDH&#xff09; PLOT 主要命令 采用分组数据处理方法&#xff08;GMDH&#xff09;对全球冰体积时间序列的建模和预测 fsz size(A) 返回一个行向量&#xff0c;其元…

创建好的提示词来让 Stable Diffusion 生成 AI 艺术作品图像

如何创建好的提示词来让 Stable Diffusion 生成 AI 艺术作品图像&#xff1f; 文章目录 Stable Diffusion如何使用&#xff1f;优秀的提示词如何制作&#xff1f;主题描述 Subject图片类型风格艺术感觉相机、镜头、渲染 示例基础绘图光线和颜色的变化图片类型美术风格艺术风格组…

springboot+java校园二手物品交易系统vxkyj

本项目在开发和设计过程中涉及到原理和技术有: B/S、Java、Jsp、MySQL数据库等等。 系统有以下几点意义&#xff1a; &#xff08;1&#xff09;提供用户和用户之间互利互惠的交易平台。 &#xff08;2&#xff09;操作简单&#xff0c;用户可以在家里就能淘到自己想要的东西&a…

祝贺!Databend 入选 ICT 中国可信云优秀云原生创新案例

2023 年 6 月 6 日&#xff0c;由工业和信息化部主办&#xff0c;中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;、中国邮电器材集团有限公司承办、创原会协办的“ ICT 中国 2023 高层论坛-云原生产业发展论坛”在北京召开。本届论坛以“云智原生新底座&am…

【C++】包装器-bind function

文章目录 包装器function包装器function包装器介绍function包装器统一类型function包装器简化代码的列子function包装器的意义 bind包装器bind包装器介绍bind包装器绑定固定参数bind包装器调整传参顺序bind包装器的意义 包装器 function包装器 function包装器介绍 function包…

【Axure教程】通过输入框动态维护可视化图表

与静态图表相比&#xff0c;动态图表更能吸引观众的眼球并提供更好的视觉效果。动态元素可以吸引观众的注意力&#xff0c;使数据更生动、更具交互性。这有助于提高信息传达的效果&#xff0c;并能够引起观众的兴趣和参与。所以今天作者就教大家&#xff0c;如果通过输入框元件…