目录

通配符 通过通配符定义匹配条件

转义符 将所有的逻辑操作符都转换成字符


通配符 通过通配符定义匹配条件

*      任意字符都可以通配(也可以匹配空值)

?     匹配单个字符

[a-z]   匹配单个的小写英文字母

[A-Z]   匹配单个的大写英文字母

[0-9]   匹配单个0-9的数字

[a,b,c]  匹配指定的单个字母(a或b或c)

[1,2,3]  匹配指定的单个数字(1或2或3),也等同于[123],不过为了严谨建议使用,分隔

[a,b,c][1,2,3]    第一个字符匹配指定字母,第二个字符匹配指定数字

{a,b,c}  匹配指定的单个字母,如果没有匹配项会报错

[]和{}的区别

 [] 有则显示,没有则不显示

 {} 有则显示出来,没有则报错

配置举例

目前有a、a1、a2、ab、aA、abc、aab7个文件

ls -l a*       可以匹配所有文件

ls -l a?       可以匹配a1、a2、ab、aA

ls -l a[a,b,c]   可以匹配ab

ls -l a{a,b,c}    不存在的文件会报错

[[:alpha:]]  匹配任意的单个字母(不区分大小写)

[[:upper:]]  匹配任意的单个大写字母

[[:lower:]]  匹配任意的单个小写字母

[[:digit:]]    匹配任意的单个数字

[[:alnum:]]  匹配任意的单个数字或字母

[[:punct:]]  匹配任意的单个标点符号


转义符 将所有的逻辑操作符都转换成字符

由于我们的输入问题,没有准确的让计算机得到我们的信息,使得计算机输出的内容可能与我们想要的结果不一样,因此通过转义符

\(反斜杠) 将\后面的一个变量转义为单纯的字符(单个转义)

''(单引号) 将''内的所有变量都转为单纯的字符(全局转义)

“”(双引号) 保留””中的变量属性,不进行转义处理

``(反引号) 将``中命令执行后的结果返回出来;$(命令) 效果同`命令`

                    一般可以放到shell脚本中使用--变量=`命令`

例子

echo $$   在屏幕上输出当前进程的PID值

echo ‘$$’  通过转义符使其转为字符,输出$$

echo “$$”  保留变量属性,输出当前进程的PID值

echo `ls`   直接在屏幕输出ls命令直接的结果

转义符与管道符结合使用

free -m | grep Mem | awk ‘{print $4}’  打印系统的空闲内存(M为单位)

注意事项

当使用echo a b c输出时不知道有几个对象,是一个对象(a b c),还是多个对象a,b,c

这种情况我们就使用双引号保留变量属性echo "a b c",表示输出是一个对象(a b c)

如果参数中出现了空格,就加双引号;如果参数中没有空格,那就可以不用加双引号。

Logo

更多推荐