linux 脚本转义字符,Linux Shell通配符、元字符、转义符最全使用攻略

说到shell通配符(wildcard),大年夜家在应用时刻会经常用到。下面是一个实例:[chengmo@localhost ~/shell]$ ls

a.txt b.txt c.old[chengmo@localhost ~/shell]$ ls d*.txt

实例:

ls: 无法拜访 d*.txt: 没有那个文件或目次

通配符是由shell处理的(不是由所涉及到敕令语句处理的,其实我们在shell各个敕令中也没有发明有这些通配符介绍), 它只会涌如今 敕令的“参数”里(它不消在 敕令名称里, 也不消在 操作符上)。当shell在“参数”中碰到了通配符时,shell会将其算作路径或文件名去在磁盘上搜寻可能的匹配:若相符请求的匹配存在,则进行代换(路径扩大);不然就将该通配符作为一个通俗字符传递给“敕令”,然后再由敕令进行处理。总之,通配符 实际上就是一种shell实现的路径扩大功能。在 通配符被处理后, shell会先完成该敕令的重组,然后再持续处理重组后的敕令,直至履行该敕令。

我们回过火分析膳绫擎敕令吧:在第2个敕令中,*.txt 实际shell搜刮文件,找到了相符前提的文件,敕令会变成:ls a.txt b.txt ,现其实履行ls 时刻传给它的是a.txt b.txt .

而敕令3,d*.txt 因为当前目次下面没有如许的文件或目次,直接将”d*.txt” 作为ls 参数,传给了 ls .这个时刻”*” 只是一个通俗的 ls 参数罢了,已经掉去了它通配意义。 因为找不到文件,所以会出现:无法拜访提示!

懂得了shell通配符,我们如今看下,shell常见通配符有那一些了。

shell常见通配符:

1ec129bf2e45fd4625bd2f3c240a45e2.jpg-wh_651x-s_280528025.jpg

须要解释的是:通配符看起来竽暌剐点象正则表达式语句,然则它与正则表达式不合的,不克不及互相混淆。把通配符懂得为shell 特别代号字符就可。并且涉及的只有,*,? [] ,{} 这几种。

二、shell元字符(特别字符 Meta)

shell 除了有通配符之外,由shell 负责预先先解析后,将处理结不雅传给敕令行之外,shell还有一系列本身的其他特别字符。d1e6f194dd45b24400e6b121c98e8a96.png

wKiom1mjtfiTzMtcAAAAAAAAAAA524.jpg

参加”*” 都是感化在敕令名直接。可以看到shell 元字符,根本是感化在敕令膳绫擎,用作多敕令瓜分(或者参数瓜分)。是以看到与通配符有雷同的字符,然则实际上感化范围不合。所以不会出现混淆。

以下是man bash 获得的英文解析:

metacharacter

A character that, when unquoted, separates words.>

f0fab61df84b22155ea50572d1b772a3.png

man bash 英文解释如下:

There are three quoting mechanisms: the escape character, single quotes, and double quotes.[chengmo@localhost ~/shell]$ ls *.txt

ls: 无法拜访 *.txt: 没有那个文件或目次

[chengmo@localhost ~/shell]$ ls '*.txt'

ls: 无法拜访 *.txt: 没有那个文件或目次

[chengmo@localhost ~/shell]$ ls 'a.txt'

a.txt

[chengmo@localhost ~/shell]$ ls *.txt

a.txt b.txt

可以看到,参加了转义符 “*”已经掉去了通配符意义了。

四、shell解析脚本的过程

看到膳绫擎说的┞封些,想必大年夜家会问到这个问题是,有这么想特别字符,通配符,那么 shell在获得一条敕令,达到是怎么样处理的呢?我们看下下面的图:

7b2657e9cad1d384234a215558d67332.png[chengmo@localhost ~/shell]$ ls *.txt

a.txt b.txt

大年夜膳绫擎这个实例,不知道大年夜家有没有发明问题呢。我们先懂得一下,通配符相干常识,再分析下这个实例吧。

如不雅用双引号包含起来,shell检测跳过了1-4步和9-10步,单引号包含起来,shell检测就会跳过了1-10步。也就是说,双引号 只经由参数扩大、敕令代换和算术代换就可以送入履行步调,而单引号转义符直接会被送入履行步调。并且,无论是双引号转义符照样单引号转义符在履行的时刻可以或许告诉各个敕令自身内部是一体的,然则其本身在履行时是并不是敕令中文本的一部分。

本系列:Linux Shell 字符串操作(长度/查找/调换)详解

Linux Shell 流程控制语句实例

一、linux shell通配符(wildcard)

推荐阅读

开放特点打造NeuSeer工业生态

8月25日,“慧领先机——寄云NeuSeer工业互联网平台宣布会”在国度会议中间隆重举办,标记住中国工业互联网行业袈溱工业大年夜数据分析、>>>详细阅读

地址:http://www.17bianji.com/lsqh/36962.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值