Shell基础学习---3、Read读取控制台输入、函数、正则表达式入门

news2024/10/5 20:22:06

1、Read读取控制台输入

1、基本语法
read (选项) (参数)

选项说明
-p指定读取值的提示符
-t指定读取值等待的时间(秒) 如果-t不加表示一直等待
参数说明
变量指定读取值的变量名

2、案例实操
在这里插入图片描述

2、函数

2.1 系统函数

2.1.1 basename
1、基本语法
	basename [string /pathname] [suffix]  (basename命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来)。
	basename可以理解为取路径里的文件名称。
	选项:
	suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。
2、案例实操

在这里插入图片描述

2.1.2 dirname

1、基本语法
dirname 文件绝对路径 (从给定的包含绝对路径的文件名(非目录部分),然后返回剩下的路径(目录的部分))
dirname 可以理解为取文件路径的绝对路径名称
2、案例实操
在这里插入图片描述

2.2 自定义函数

1、基本语法

[ function ] funname[()]
{	
	Action;
	[return int;]
}

2、经验技巧
(1)必须在调用函数地方之前,先声明函数,shell脚本时逐行运行。不会像其他语言一样先编译。
(2)函数返回值,只能通过$?系统变量获得,可以显示加:Return 返回,如果不加,将以最后一条命令运行结果作为返回值。return 后跟数值n(0-255)
3、案例实操

在这里插入图片描述

3、正则表达式入门

正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。在Linux中,grep,sed,awk等文本处理工具都支持通过正则表达式进行模式匹配。

3.1 常规匹配

一串不包含特殊字符的正则表达式匹配它自己

在这里插入图片描述

3.2 常用特殊字符

1、特殊字符 ^
	匹配一行的开头

在这里插入图片描述
2、特殊字符 $
匹配一行的结尾
在这里插入图片描述
3、特殊字符 .
匹配一个任意字符
在这里插入图片描述
4、特殊字符 *
*不会单独使用,它和上一个字符连用,表示匹配上一个字符0次或多次
在这里插入图片描述
有意思的结果
在这里插入图片描述
在这里插入图片描述
5、字符区间(中括号): [ ]
[ ] 表示匹配某个范围内的一个字符
[6,8] 匹配6或8
[0-9]匹配一个0-9的数字
[0-9]* 匹配任意长度的数字字符串
[a-z] 匹配一个a-z之间的字符
[a-z]*匹配任意长度的怎么字符串
[a-c,e-f] 匹配a-c或者e-f之间的任意字符

在这里插入图片描述
6、特殊字符
\表示转义,并不会单独使用。由于所有特殊字符都会有其特点匹配模式,当我们想匹配某一个特殊字符串本身时,就会碰到困难。此时我们要将转义字符和特殊字符连用,来表示特殊字符本身。
在这里插入图片描述
注意:要使用单引号将表达式引起来(前后都要)

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

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

相关文章

【数据库】SQLServer报修表,维修表,反馈表三表连查

大家好,我是雷工! 最近参与的一个SCADA项目,客户要求增加设备维保的功能,对设备的报修,维修,反馈过程进行记录查询,进一步提升企业的信息化能力。 该过程的实现是通过创建三个表分别记录报修-维…

uniapp 用css画五边形(app 小程序),长方形中间斜线分割成两部分

效果图 css .scoreLabel{ background: $yxs-theme-color; width: 64rpx; height: 69rpx; line-height: 32rpx; font-size: 28rpx; font-family: DINPro; f…

chatgpt赋能Python-python3_9安装scrapy

Python3.9安装Scrapy——加速数据抓取的利器 在现代数字化时代,数据抓取和数据挖掘的重要性越来越受到重视。作为一种高效的爬虫框架,Scrapy能够实现快速的页面抓取和数据解析,并帮助我们快速获取所需数据。本篇文章将会为大家介绍如何在Pyt…

【零基础学web前端】CSS学习,字体属性,文本属性,背景属性,圆角矩形属性

前言: 大家好,我是良辰丫,在上一篇文章中我们了解了CSS引入方式,CSS基础选择器,CSS复合选择器,今天我们继续学习CSS的相关知识点.💞💞 🧑个人主页:良辰针不戳 📖所属专栏:零基础学web前端 🍎励志…

其利天下技术居于32位MCU推出11万转无刷高速吹风筒方案--【高速吹风筒PCBA】

大家都知道高速吹风筒的兴起是因为戴森的产品体验,从另一角度赋予了吹风筒全新的产品形态和灵魂,于是产品有了智能和品质的体验感。 无刷电机的技术瓶颈在大家的共同努力下,从结构到驱动上都有了新的突破,所以近年来,高…

在疯狂三月之后,深入浅出分析AIGC的核心价值 (下篇)|【AI行研商业价值分析】

Rocky Ding 公众号:WeThinkIn 写在前面 【AI行研&商业价值分析】栏目专注于分享AI行业中最新热点/风口的思考与判断。也欢迎大家提出宝贵的优化建议,一起交流学习💪 大家好,我是Rocky。 本文是《在疯狂三月之后,深…

openwrt-安装NGINX

openwrt-安装NGINX 介绍 OpenWrt 是一个用于嵌入式设备的开源操作系统。它基于 Linux 内核,并且主要被设计用于路由器和网络设备。 OpenWrt 的主要特点包括: 完全可定制:OpenWrt 提供了一个完全可写的文件系统,用户可以自定义设…

目前账号矩阵系统源码有几种框架

目前账号矩阵系统源码主要有三种框架:Spring、Struts和Hibernate。Spring框架是一个全栈式的Java应用程序开发框架,提供了IOC容器、AOP、事务管理等功能。Struts框架是一个MVC架构的Web应用程序框架,用于将数据模型、Web应用程序的用户界面和…

纯css实现手风琴效果

今天在网上看到了一个纯css实现的手风琴&#xff0c;很巧妙 效果如下&#xff1a; 具体代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content…

跨平台应用开发进阶(六十五):小程序分包策略及实战讲解

文章目录 一、前言二、为什么要使用分包&#xff1f;三、分包大小查看四、如何使用分包&#xff1f;五、独立分包六、分包预下载七、项目实战八、拓展阅读 一、前言 微信小程序开发过程中&#xff0c;随着业务不断迭代&#xff0c;程序包的体积越来越大&#xff0c;使用分包加…

HTTP协议报文格式详解和抓包那些事

文章目录 HTTP协议是什么HTTP报文格式抓包工具fiddler HTTP请求请求行HTTP方法URL版本号 请求头HOSTContent-Type&Content-LengthUser-Agent(简称UA)RefererCookie HTTP响应状态行版本号状态码 HTTP协议是什么 HTTP协议全称为超文本传输协议&#xff0c;是一个被广泛使用的…

【dfs之 迭代加深】【dfs层序遍历】【dfs和bfs的缺点结合解决 就是 迭代加深】加成序列

迭代加深 DFS&#xff0c;BFS和迭代加深的联系与区别例题1. 加成序列普通思想&#xff1a;优化方法&#xff1a; DFS&#xff0c;BFS和迭代加深的联系与区别 DFS&#xff1a; DFS算法是沿着搜索树的根节点&#xff0c;一直遍历完该搜索树之后再回溯继续搜索的一种算法。缺点是…

python读取excel数据并用双y轴绘制柱状图和折线图,柱子用渐变颜色填充

python绘图系列文章目录 往期python绘图合集: python绘制简单的折线图 python读取excel中数据并绘制多子图多组图在一张画布上 python绘制带误差棒的柱状图 python绘制多子图并单独显示 python读取excel数据并绘制多y轴图像 python绘制柱状图并美化|不同颜色填充柱子 python随机…

体验css:repeat和grid

文章目录 一、repeat1. 语法2. auto-fill和auto-fit3. 专属尺寸① fr② auto③ max-content④ min-content 二、grid1. 设置grid布局2. 设置列宽行高3. 设置间距4. 设置分区5. 设置布局排列顺序6. 设置单元格内容对齐方式7. 设置整个网格对齐方式8. 设置隐式网格大小9. 设置网格…

geoserver图层样式的多种配置方法

前言&#xff1a;用geoserver发布服务的图层一般都配置了样式&#xff0c;简单的或者复杂的&#xff1b;单一的或者渐进式的等。今天我们结合业务场景、依据具体的数据分析给图层配置样式的多种方式。接着前几篇博客用到的数据为例&#xff1a; 一、配置默认样式 点击此篇文章…

Vue中展示中文名称

我今天调用接口时发现列表展示的楼栋一直是数字&#xff0c;并不是它的中文名称&#xff1b;但是点击编辑获取所属楼栋的下拉框中&#xff0c;又为中文名称&#xff0c;当我选中B栋点击修改之后又变成了B栋对应数字&#xff1b;然后我写了一个根据楼栋id获取对应的中文方法&…

栈与队列的对决:用队列实现栈的2种思路

本篇博客会讲解力扣“225. 用队列实现栈”的解题思路&#xff0c;这是题目链接。 先来审题&#xff1a; 以下是输出示例&#xff1a; 以下是提示和进阶&#xff1a; 这道题有2种思路&#xff0c;分别使用2个和1个队列来实现栈。 准备工作 先来实现队列。由于本篇博客的…

一步一步详解LSTM网络【从RNN到LSTM到GRU等,直至attention】

一步一步详解LSTM网络【从RNN到LSTM到GRU等&#xff0c;直至attention】 0、前言1、Recurrent Neural Networks循环神经网络2、The Problem of Long-Term Dependencies长期依赖的问题3、LSTM Networks4、The Core Idea Behind LSTMs5、Step-by-Step LSTM Walk Through6、Varian…

Linux--进程(一篇博客让你理解操作系统的底层)

Linux–进程 本篇博客讲开始进入进程模块&#xff0c;我们先从冯诺依曼的体系结构和操作系统讲起&#xff0c;由浅入深&#xff0c;先梳理一个Linux相关知识体系框架~ 进程目录 Linux--进程一、冯诺依曼体系结构1.1外围设备1.2中央处理器(CPU)1.3存储器(内存)1.3.1什么是内存&a…

【LeetCode20】有效的括号——图解

​ 你好&#xff0c;欢迎来到我的博客&#xff01;作为一名程序员&#xff0c;我经常刷LeetCode题目来提升自己的编程能力。在我的博客里&#xff0c;我会分享一些我自己做过的题目和解题思路&#xff0c;希望能够帮助到大家。今天&#xff0c;我想和大家分享一道挑战性较高的题…