Linux之shell函数和正则表达式(八)

news2024/11/25 10:34:32

1、函数

1、函数概述

shell 中允许将一组命令集合成语句形成一段可用代码,这些代码块称为 shell 函数,给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能

2、定义函数

函数名()
{
  函数体(一堆命令的集合,来实现某个功能)   
}function 函数名()
{
   函数体(一堆命令的集合,来实现某个功能)
}

函数中 return 说明:
1、return 可以结束一个函数
2、return 默认返回函数中最后一个命令状态值,也可以给定参数值,范围在0~256之间
3、如果没有 return 命令,函数将返回最后一个指令的退出状态

3、调用函数

1、当前命令行调用
[root@yhm ~]# cat 1.sh
#!/bin/bash
hello() 
{
        echo "hello"
}
[root@yhm ~]# source 1.sh
[root@yhm ~]# . 1.sh
[root@yhm ~]# hello
hello
[root@yhm ~]# hello 888
hello
2、定义到用户的环境变量中
[root@yhm ~]# vim ~/.bashrc
hello(){
        echo "hello"
}   

注:当用户打开 bash 的时候会读取该文件

3、脚本中调用
[root@yhm ~]# vim 2.sh
#!/bin/bash
source ~/.bashrc
func(){
        echo "hello shell"
}
func
[root@yhm ~]# source 2.sh
hello shell
[root@yhm ~]# hello
hello

2、正则表达式

1、正则表达式概述

正则表达式(Regular Expression、regex或regexp,缩写为RE),也译为正规表示法、常贵表示法,是一种字符模式,用于在查找过程中匹配指定的字符。许多程序设计语言都支持利用正则表达式进行字符串的操作。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。支持正则表达式的程序如:locate |find| vi| grep| sed |awk
正则表达式的作用:匹配某些特定字符串,做特定处理等等
元字符:指那些在正则表达式中具有特殊意义的专用字符,如:点(.)、星(*)、问号(?)等

前导字符:位于元字符前面的字符:abc*、abbo.

2、正则表达式中常用的元字符

元字符功能
.匹配除了换行符以外的任意单个字符的字符串
*前导字符出现0次或连续多次的字符串
.*任意长度字符的字符串
^行首(以…开头)的字符串
$行尾(以…结尾)的字符串
^$空行
[]匹配括号里任一单个字符或一组单个字符的字符串
[^]匹配不包含括号里任一单个字符或一组单个字符的字符串
^ []匹配以括号里任一单个字符或一组单个字符开头的字符串
^ [^]匹配不以括号里任一单个字符或一组单个字符开头的字符串
[root@yhm ~]# vim 1.txt
ggle
gogle
google
gooogle
goooooogle
gooooooogle
taobao.com
taotaobaobao.com

jingdong.com
dingdingdongdong.com
10.1.1.1
Adfjd8789JHfdsdf/
a87fdjfkdLKJK
7kdjfd989KJK;
bSKJjkksdjf878.
cidufKJHJ6576,

hello world
helloworld yourself

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、正则表达式中其他常用元字符

元字符功能
\ <取单词的头
\ >取单词的尾
\ < \ >精确匹配
\ {n\ }匹配前导字符连续出现n次
\ {n,\ }匹配前导字符至少出现n次
\ {n,m\ }匹配前导字符出现n次与m次之间
\ ( \ )保存被匹配的字符
\ d匹配数字(grep -p)
\ w匹配字母数字下划线(grep -p)
\ s(匹配空格、制表符、换页符(grep -p))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、扩展类正则常用元字符

grep 需要叫 -E 或者使用 egrep
sed 必须加 -r

扩展元字符功能
+匹配一个或多个前导字符
?匹配零个或一个前导字符
|
()组符号(看成整体)
{n}前导字符重复 n 次
{n,}前导字符重复至少 n 次
{n,m}前导字符重复 n 到 m 次

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:

表达式功能
[:alnum;]字母与数字字符
[:alpha:]字母字符(包括大小写字母)
[:blank:]空格与制表符
[:digit:]数字
[:lower:]小写字母
[:upper:]大写字母
[:punct:]标点符号
[:space:]包括换行符、回车等在内的所有空白

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

程序员的下一个风口

面对近一年的裁员潮&#xff0c;以及 GPT 出现带来的 AI 颠覆潮流&#xff0c;各种话题出现&#xff1a;「前端已死」、「后端已死」、「Copy/Paste 程序员将被 AI 取代」。程序员行业是否还有发展空间&#xff1f; 这一两年的就业机会是因为经济衰落周期内造成的&#xff0c;不…

pmp备考有哪些适合新手的学习资料?

在备考中&#xff0c;无论你是胸有成竹的学霸还是忐忑不安的学渣&#xff0c;强烈建议你是时候展现真正的技术了——临阵磨枪不快也光&#xff01;你准备好了吗&#xff1f;前方为大家准备了高能备考技巧和干货资料包&#xff0c;拿起热水杯&#xff0c;准备走起。 1.PMBOK知识…

怎样使用Web自动化测试减少手动劳动?以百度网站为例

从入门到精通&#xff01;企业级接口自动化测试实战&#xff0c;详细教学&#xff01;&#xff08;自学必备视频&#xff09; 目录 摘要 步骤1&#xff1a;安装和配置Selenium 步骤2&#xff1a;启动浏览器并访问百度网站 步骤3&#xff1a;关闭浏览器 总结 摘要 本指南将…

数据风险评估

通过数据风险评估定位敏感数据并分析其漏洞。根据文件的敏感度对文件进行分类&#xff0c;并确保为它们提供必要的保护。 发现、分析和保护敏感数据 查找所有个人数据根据敏感度对文件进行分类遵守 IT 法规分析文件和权限 查找所有个人数据 监控企业存储环境并接收有关敏感…

(CVE-2022-22965)Spring Framework 远程命令执行漏洞(vulfocus复现)

漏洞原理 该漏洞是SpringFramework数据绑定的一个漏洞&#xff0c;如果后台方法中接受的参数为非基础类型&#xff0c;Spring会根据前端传入的请求正文中的参数的key值来查询与其名称所对应的getter和setter方法&#xff0c;攻击者利用这一特性修改了Tomcat的一个用于日志记录…

java开发记录v2(引入jar,问题及解决)

引入本地jar包 在src同级目录下新建libs目录将jar包放入进去 在pom.xml中下加入以下代码 <dependencies><dependency><groupId>com.hikvision.ga</groupId><artifactId>artemis-http-client</artifactId><version>1.1.8</ver…

Acer非凡X14笔记本电脑蓝屏了怎么U盘重装系统?

Acer非凡X14笔记本电脑蓝屏了怎么U盘重装系统&#xff1f;有用户在使用Acer非凡X14笔记本电脑的时候&#xff0c;系统开机后出现了蓝屏的情况&#xff0c;导致自己的电脑无法正常的去进行使用。那么这个情况怎么去通过U盘重装系统的方法来恢复系统的使用呢&#xff1f;一起来看…

软考A计划-重点考点-专题十二(JAVA程序设计)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

数据中心列头柜监控在常熟某微模块中的应用

安科瑞 耿敏花 摘要&#xff1a;安科瑞精密配电系统是安科瑞针对数据中心集中监控要求提供的多回路监控装置&#xff0c;监控多回路电参量并可对各种故障进行告警。主要适用于各类列头柜、精密配电柜、电源分配柜、UPS输出柜等末端配电设备的监控。在阐述数据中心机房机柜配电…

Keepalived结合Nginx实现WEB高可用服务

前言 随着Nginx在国内的发展潮流&#xff0c;越来越多的互联网公司都在使用Nginx&#xff0c;Nginx高性能、稳定性成为IT人士青睐的HTTP和反向代理服务器。 Nginx负载均衡一般位于整个网站架构的最前端或者中间层&#xff0c;如果为最前端时单台Nginx会存在单点故障&#xff0…

【SpringBoot2】四:核心技术----配置文件

文章目录 1.SpringBoot配置文件种类2.yaml3.支持的数据类型4.对象5.数组6.字面量7.示例 1.SpringBoot配置文件种类 主要有两种类型&#xff1a; properties yaml 2.yaml 语法&#xff1a; 大小写敏感使用缩进表示层级关系缩进不允许使用tab&#xff0c;只允许空格缩进的空格…

开源字节数字化乡村系统

随着社会的发展&#xff0c;互联网技术的迅速发展&#xff0c;乡村建设也受到了越来越多的关注。互联网乡村建设是一种新型的乡村建设模式&#xff0c;它将互联网技术与乡村建设相结合&#xff0c;以提高乡村建设的效率和质量。为了实现互联网乡村建设&#xff0c;需要建立一个…

2023 FP独立站的运营玩法汇总

无论Paypal怎么风控封号、冻结资金&#xff0c;但还是有很多新人前仆后继地加入外贸独立站这一行&#xff0c;特别是做FP。因为明白人都知道&#xff0c;FP利润空间比普货产品大得多。 那么2023年的独立站我们该怎么做&#xff0c;怎么运营才能逐步起色&#xff1f;今天我就跟…

Java版工程项目管理系统平台+企业工程系统源码+助力工程企业实现数字化管理

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示1…

48-Dockerfile-CMD/ENTRYPOINT指令

CMD/ENTRYPOINT指令 前言CMD作用格式使用示例 ENTRYPOINT作用格式使用示例CMD/ENTRYPOINT区别CMD使用示例ENTRYPOINT使用示例 前言 本篇来学习下Dockerfile中的CMD/ENTRYPOINT指令 CMD 作用 启动容器时默认执行的命令 说明&#xff1a; 一个 Dockerfile 只有一个 CMD 指令&…

nginx+flume网络流量日志实时数据分析实战

文章目录 nginxflume网络流量日志实时数据分析实战网络流量日志数据分析-概述网络流量日志数据分析-数据处理流程网络流量日志数据分析-数据采集网站日志文件启动nginx服务器:刷新页面,查看日志信息:日志字段解释 网络流量日志数据分析-数据采集-Flume框架Flume概述Flume运行机…

ESP32-C2开发板烧录演示

一、准备工作 数据线X 1 、 四博智联 ESPC2-12 开发板 X 1 二、环境搭建 1、进入https://code.visualstudio.com 官网下载VSCODE软件 2、安装完成后安装乐鑫插件如下图 3、插件安装完后&#xff0c;查看- 命令面板&#xff08;快捷键CtrlShiftP&#xff09;。 4、输入config…

基于C#的上位机和组态软件:如何选择最佳方案?

C#上位机并非取代组态软件&#xff0c;而是其补充&#xff0c;它们各自在不同的应用场景中发挥作用。 如果您了解组态&#xff0c;但不懂C#编程&#xff0c;且没有特殊需求&#xff08;如自定义协议、复杂业务、第三方系统对接等&#xff09;&#xff0c;并且希望获得良好的功…

无人机航测行业中常见名词解释,你都知道吗?

无人机航测具有机动灵活、高效快速、作业成本低、适用范围广、生产周期短等优势&#xff0c;目前主要应用于地形测绘、工程建设、土地资源调查、地质灾害应急处理、城市数字化建设等方面。下面就来了解一下无人机航测行业中的常见名词吧。 1、航片&#xff1a;利用航空摄影器拍…

有什么好用的云渲染?

在CG制作流程中&#xff0c;离线渲染一直是必要且耗时的环节。你的场景越复杂&#xff0c;渲染出现问题的可能性就越大&#xff0c;尤其是当你独自工作&#xff0c;没有人给你建议的时候&#xff0c;灯光、模型、场景任何一个环节渲染时出现问题都可能让你焦头烂额&#xff0c;…