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

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

1、Read读取控制台输入

1、基本语法

read (选项) (参数)

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


参数 说明
变量 指定读取值的变量名

2、案例实操

73016b12fb994955bf675795cddf6812.png

2、函数

2.1 系统函数

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

a30989eeb7d24052828be3e40263b0dc.png

2.1.2 dirname

1、基本语法

dirname 文件绝对路径 (从给定的包含绝对路径的文件名(非目录部分),然后返回剩下的路径(目录的部分))

dirname 可以理解为取文件路径的绝对路径名称

2、案例实操

8440cdac19654db59683d2a0fe64c3aa.png

2.2 自定义函数

1、基本语法

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

2、经验技巧

(1)必须在调用函数地方之前,先声明函数,shell脚本时逐行运行。不会像其他语言一样先编译。

(2)函数返回值,只能通过$?系统变量获得,可以显示加:Return 返回,如果不加,将以最后一条命令运行结果作为返回值。return 后跟数值n(0-255)

3、案例实操

db254352adc64600b411e7e35a4a9da5.png

3、正则表达式入门

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

3.1 常规匹配

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

9ca684eb141744c1b806a24f4a065694.png

3.2 常用特殊字符

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

a2caef88c3a94d539dc87736233d35e7.png

2、特殊字符 $

匹配一行的结尾

2731858b32ee4105a94156f56e99861e.png

3、特殊字符 .

匹配一个任意字符

41f4713870434665a5f673bc7b6c468a.png

4、特殊字符 *

*不会单独使用,它和上一个字符连用,表示匹配上一个字符0次或多次

2d2cf7475bed4b50ba6050a6ce2f53a4.png

有意思的结果

321d427301e04c5f82fc0c0824272070.png

a1b1b788d9c64de39769e82640096b47.png

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之间的任意字符

3239dcab973f482a963c8546e8591368.png

6、特殊字符

\表示转义,并不会单独使用。由于所有特殊字符都会有其特点匹配模式,当我们想匹配某一个特殊字符串本身时,就会碰到困难。此时我们要将转义字符和特殊字符连用,来表示特殊字符本身。

c8a7ced177ca41ba87a022e404e1beca.png

注意:要使用单引号将表达式引起来(前后都要)

相关文章
|
28天前
|
Shell Linux Windows
让我们熟悉一下 shell 正则表达式使用
正则表达式是一种文本处理工具,用于匹配、查找、替换或提取字符串中的特定模式。通过普通字符和特殊字符(元字符)组成,定义匹配规则。本文档通过示例展示了如何使用正则表达式进行字符串搜索、过滤和模式匹配,包括基本匹配、行首行尾定位、字符集使用、任意字符与重复字符处理以及限定重复次数等高级功能。
45 7
|
2月前
|
测试技术 Perl
一个提高效率的工具,正则表达式,值得学习一下!
一个提高效率的工具,正则表达式,值得学习一下!
|
2月前
|
Dubbo IDE Java
dubbo学习二:下载Dubbo-Admin管理控制台,并分析在2.6.1及2.6.1以后版本的变化
这篇文章是关于如何下载和部署Dubbo管理控制台(dubbo-admin)的教程,并分析了2.6.1版本及以后版本的变化。
88 0
dubbo学习二:下载Dubbo-Admin管理控制台,并分析在2.6.1及2.6.1以后版本的变化
|
2月前
|
JavaScript 前端开发 Scala
Python学习十:正则表达式
这篇文章是关于Python中正则表达式的使用,包括re模块的函数、特殊字符、匹配模式以及贪婪与非贪婪模式的详细介绍。
19 0
|
7月前
|
Web App开发 JavaScript
学习VUE之正则表达式全集整理
学习VUE之正则表达式全集整理
79 0
|
4月前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
|
4月前
|
Unix Shell Python
在Shell中转换Python正则表达式
结合以上提到的注意事项与差异点,就能在Shell环境中巧妙地转换并使用Python正则表达式了。务实和节省时间的做法是,将一些常见Python正则模式记在手边,随时查阅并对照POSIX标准进行调整。同时,借助在线正则表达式测试器和文档也能有效地提升在Shell环境中处理正则表达式的能力。
54 5
|
4月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
66 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
3月前
|
存储 Ubuntu Shell
shell 用法入门
本文档详细介绍了Shell脚本的基础知识,包括基本写法、变量定义与使用、命令置换、环境变量、数组操作、算术运算、输入输出处理、控制语句及循环结构等内容。文档还提供了丰富的示例代码,帮助读者更好地理解和掌握Shell编程技巧。此外,还介绍了如何使用`if`语句进行条件判断、`case`语句进行模式匹配以及`while`、`for`循环等控制结构。最后,文档还涵盖了函数定义与调用的方法。适合初学者和有一定基础的开发者参考学习。
|
5月前
|
存储 JavaScript 前端开发