从零开始学习Linux(三十五):Shell基础之通配符与特殊符号

1、通配符

通配符 作用
? 匹配任意一个字符;
* 匹配0个或任意多个字符(即可以匹配任何内容);
[] 匹配中括号里任意一个字符。例如:[abc]表示匹配abc中任意一个字符;
[-] 匹配中括号里任意一个字符,-代表一个范围。例如:[a-z]表示匹配任意一个小写字母;[0-9]表示匹配任意一个数字;
[^] 逻辑非,表示匹配非中括号内的一个字符。例如:[^0- 9]代表匹配任意一个不是数字的字符;

按照下方顺序执行命令,将tmp目录下面的文件清空后,创建文件123、1abc、xabc、abc、abcd。

cd /tmp/
rm -rf *
touch 123
touch 1abc
touch xabc
touch abc
touch abcd
1.1、*通配符

执行命令:ls *abc,匹配任意0个或多个字符,然后以abc结尾的。匹配结果,如下图所示:

1.2、?通配符

执行命令:ls ?abc,匹配任意1个字符,然后以abc结尾的。匹配结果,如下图所示:

1.3、[-]通配符

执行命令:ls [0-9]*,匹配以数字开头的。匹配结果,如下图所示:

1.4、[^]通配符

执行命令:ls [^0-9]*,匹配以非数字开头的。匹配结果,如下图所示:

2、bash中特殊符号

符号 作用
'' 单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。
"" 双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`” 和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。
`` 反引号。反引号括起来的内容是系统命令,在bash中会先执行它。 和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。
$() 和反引号作用一样,用来引用系统命令。
# 在shell脚本中,#开头的行代表注释(除首行#!/bin/bash以外,这是固定格式)。
$ 用于调用变量的值,如需要调用变量name的值时,需要用$name 的方式得到变量的值。
\ 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量引用。
2.1、反引号与$()

执行命令:ls、echo `ls`、echo $(ls)。
三个命令执行结果都一样,如下图所示:

2.2、单引号与双引号

定义变量name,给name赋值zhoujielun。然后分别调用命令echo '$name' 和 echo "$name"。输出结果如下图所示:

单引号直接将引号内部的信息输出来了。双引号是输出了变量name的值。

注意:如果调用 echo '$name" 或 echo "$name' ,并非完整的一个单引号或双引号。这种情况下执行命令,会要求你输入命令一直到匹配到完整的引号为止。

你可能感兴趣的:(从零开始学习Linux(三十五):Shell基础之通配符与特殊符号)