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

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

相关文章
|
21天前
|
Shell Linux
Linux下的Shell基础——Shell概述和入门(一)
Linux下的Shell基础——Shell概述和入门(一)
26 0
Linux下的Shell基础——Shell概述和入门(一)
|
1月前
|
监控 Linux Shell
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 下)
在线上排查问题时,查询日志、查看系统配置和分析操作系统信息是至关重要的。这些操作可以帮助我们深入了解软件和服务的兼容性,并解决潜在的问题。在本次学习中,我们将介绍并深入学习一些我在处理类似问题时常用的指令。通过掌握这些指令,你将能够更加高效地定位和解决线上问题,提高系统的稳定性和性能。让我们一同进入这个学习过程吧!
36 0
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 下)
|
5天前
|
存储 安全 Unix
利用Shell指令通过函数获取用户UID
利用Shell指令通过函数获取用户UID
|
21天前
|
监控 Shell Linux
Linux如何系统的学习shell方法
Linux如何系统的学习shell方法
21 0
|
21天前
|
Linux Shell
Linux下的Shell基础——正则表达式入门(四)
Linux下的Shell基础——正则表达式入门(四)
19 1
Linux下的Shell基础——正则表达式入门(四)
|
22天前
|
Unix Shell Linux
【Shell】Shell脚本入门
【Shell】Shell脚本入门
42 0
|
28天前
|
Shell
Shell 编程快速入门 之 函数基础知识
Shell 编程快速入门 之 函数基础知识
57 0
Shell 编程快速入门 之 函数基础知识
|
1月前
|
关系型数据库 Linux Shell
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(文件处理指令-上)
在当今的数字化时代,Linux已成为服务器、云计算、物联网等众多领域的核心操作系统。对于技术从业者、开发者以及系统管理员来说,掌握Linux指令不仅是一项基本技能,更是打开专业领域大门的关键。
43 3
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(文件处理指令-上)
|
1月前
|
数据采集 Python
Python学习 -- 正则表达式(re模块)
Python学习 -- 正则表达式(re模块)
16 0
|
1月前
|
Python
Python基础学习 -- 正则表达式
Python基础学习 -- 正则表达式
8 0

相关产品

  • 云迁移中心