文档章节

Linux Shell 通配符、元字符、转义符使用实例介绍

陶邦仁
 陶邦仁
发布于 2015/04/22 16:04
字数 835
阅读 335
收藏 1

说到shell通配符(wildcard),大家在使用时候会经常用到。下面是一个实例:

在此输入图片描述

##Linux shell通配符(wildcard)## 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的“参数”里(它不用在 命令名称里, 也不用在 操作符上)。**当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。**总之,通配符实际上就是一种shell实现的路径扩展功能。在通配符被处理后, shell会先完成该命令的重组,然后再继续处理重组后的命令,直至执行该命令。

我们回过头分析上面命令吧:在命令2中,*.bin 实际shell搜索文件,找到了符合条件的文件,命令会变成:ls idea.bin,实际在执行ls 时候传给它的是idea.bin 。

而命令3中d*.bin 由于当前目录下面没有这样的文件或目录,直接将”d*.bin” 作为ls参数,传给了 ls 。这个时候”*” 只是一个普通的 ls 参数而已,已经失去了它通配意义。 由于找不到文件,所以会出现:无法访问提示!

Shell常见通配符:

在此输入图片描述

需要说明的是:通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆。把通配符理解为shell 特殊代号字符就可。而且涉及的只有,*,? [] ,{} 这几种。

##Shell元字符(特殊字符 Meta)## Shell 除了有通配符之外,由Shell 负责预先先解析后,将处理结果传给命令行之外,Shell还有一系列自己的其他特殊字符。

在此输入图片描述

加入”*” 都是作用在命令名直接。可以看到shell 元字符,基本是作用在命令上面,用作多命令分割(或者参数分割)。因此看到与通配符有相同的字符,但是实际上作用范围不同。所以不会出现混淆。

##Shell转义符## 有时候,我们想让通配符,或者元字符 变成普通字符,不需要使用它。那么这里我们就需要用到转义符了。 Shell提供转义符有三种。

在此输入图片描述

示例如下:

在此输入图片描述

##Shell解析脚本的过程##

在此输入图片描述

如果用双引号包括起来,Shell检测跳过了1-4步和9-10步,单引号包括起来,Shell检测就会跳过了1-10步。也就是说,双引号 只经过参数扩展、命令代换和算术代换就可以送入执行步骤,而单引号转义符直接会被送入执行步骤。而且,无论是双引号转义符还是单引号转义符在执行的时候能够告诉各个命令自身内部是一体的,但是其本身在执行时是并不是命令中文本的一部分。

© 著作权归作者所有

共有 人打赏支持
陶邦仁
粉丝 1606
博文 420
码字总数 1483822
作品 0
海淀
技术主管
Linux Shell 通配符、元字符、转义符使用实例介绍

说到shell通配符(wildcard),大家在使用时候会经常用到。下面是一个实例: 从上面这个实例,不知道大家有没有发现问题呢。我们先了解一下,通配符相关知识,再分析下这个实例吧。 一、lin...

大数据之路
2012/07/31
0
0
linux通配符和正则表达式

1、 通配符 通配符是shell在做PathnameExpansion时用到的。说白了一般只用于文件名匹配,它是由shell解析的,比如find,ls,cp,mv等。 1、1 Shell常见通配符: 1、2 shell Meta字符(元字符...

游骑兵vtx
2017/10/07
0
0
Linux技术学习:Io重定向 Redirection 详解

文件描述符在bash中比较少用,从0开始用户表示进行的数据流,0表示标准输入,1表示标准输出,2表示标注错误输出,其他从3开始。最为常用的场景是将错误消息输出到某个文件,可以加上2>file到...

长沙千锋
05/03
0
0
Linux 下 grep 命令的正则表达式规范

使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,这就是正则表达式。Linux 的 grep 命令是一种查找过滤工具,用于在文件中查找指定模式的字符串,其支持正则表达式。 通配符和正则...

Konghy
2015/10/27
0
0
使用正则表达式实现像SQL中LIKE语句中的%和_通配

在项目中我们经常遇到将数据库的数据取到后再次进行筛选过滤的情况。LINQ to Entity提供了统一的查询接口并且可以高效的完成工作,但是对于我们常在SQL中使用的%和_这样的通配符并没有支持。...

arthurshan
2014/09/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

用Golang做了一个命令行贪吃蛇游戏

用Golang做了一个命令行贪吃蛇游戏 项目介绍 项目链接:https://gitee.com/lwow2025/snake-go 最近看了一本做几个小项目的书,突然就想用Golang做一个命令行贪吃蛇,也没啥特殊原因。 软件架...

Mediv
16分钟前
0
0
storm的利用并行度提高处理速度的经验

在storm的流计算框架中,在数据量非常大或者计算逻辑比较复杂的情况下,可能会造成处理速度变慢的情况,最后反而不满足了系统的处理要求,因此这里讨论一下。本文的内容是我在storm的使用过程...

飓风2000
25分钟前
0
0
课程推荐|深入浅出区块链博主:全栈区块链开发者的4堂必修课(线上优惠)

Tiny熊从2017年开始更新“深入浅出区块链”博客,在第一篇文章中,关于如何系统学习区块链技术,他这样描述:“从事区块链开发也有很多方向,如:区块链应用开发人员、区块链架构师、底层核心...

HiBlock
37分钟前
0
0
激活win10 亲测有效

1.首先,我们先查看一下Win10正式专业版系统的激活状态: 点击桌面左下角的“Windows”按钮,从打开的扩展面板中依次点击“设置”-“更新和安全”,并切换到“激活”选项卡,在此就可以查看到...

可达鸭眉头一皱
39分钟前
0
0
SpringWind180926

SpringWind SpringWind项目代码学习笔记 /SpringWind/src/main/webapp/WEB-INF/views/login.html 第15行action="#springUrl('/account/login.html')"【为什么是#springUrl】 第4行<a class=......

颖伙虫
52分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部