Linux通配符、转义符讲解
任意字符都可以通配(也可以匹配空值)?匹配单个字符[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-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)
如果参数中出现了空格,就加双引号;如果参数中没有空格,那就可以不用加双引号。
更多推荐
所有评论(0)