您的位置:首页 > 运维架构 > Shell

bash中的通配符和其他特殊符号

2017-04-08 00:00 246 查看

1.bash中的通配符



###删除tmp目录中的所有文件
[root@wenhaijin apache-tomcat-8.5.9]# cd /tmp
[root@wenhaijin tmp]# rm -rf *

###创建几个文件来演示通配符效果
[root@wenhaijin tmp]# touch abc
[root@wenhaijin tmp]# touch abcd
[root@wenhaijin tmp]# touch 012
[root@wenhaijin tmp]# touch 0abc
[root@wenhaijin tmp]# ls
012  0abc  abc  abcd

###"*"匹配任意字符,以abc结尾
[root@wenhaijin tmp]# ls *abc
0abc  abc
###匹配包含abc的文件
[root@wenhaijin tmp]# ls *abc*
0abc  abc  abcd
###"?"匹配单个字符
[root@wenhaijin tmp]# ls ?abc
0abc
###匹配以abc结尾,且前面有且只有一个数字打头的文件
[root@wenhaijin tmp]# ls [0-9]abc
0abc
###匹配以abc结尾,且前面有且只有一个非数字类型字符的文件
[root@wenhaijin tmp]# ls [^0-9]abc
ls: cannot access [^0-9]abc: No such file or directory
[root@wenhaijin tmp]# touch fabc
[root@wenhaijin tmp]# ls [^0-9]abc
fabc


2.bash中的其他特殊符号



###使用$符号引用变量(定义变量的时候=两边不能加空格,否则会报错)
[root@wenhaijin tmp]# name=wenhaijin
[root@wenhaijin tmp]# echo $name
wenhaijin

###单引号中的特殊字符没有特殊含义,bash会将其原封不动地输出
[root@wenhaijin tmp]# echo '$name'
$name

###双引号中的特殊字符具有特殊含义
[root@wenhaijin tmp]# echo "$name"
wenhaijin

###bash会将反引号(esc下方的按键)中的内容当做命令来执行
[root@wenhaijin tmp]# abc=date
[root@wenhaijin tmp]# echo `abc`
-bash: abc: command not found
[root@wenhaijin tmp]# echo `$abc`
Sat Apr 8 17:12:22 CST 2017
[root@wenhaijin tmp]#

###由于反引号很容易被看成单引号,所以可以用$()来等价替换单引号
[root@wenhaijin tmp]# abc=$(date)
[root@wenhaijin tmp]# echo $abc
Sat Apr 8 17:14:05 CST 2017

###转移符'\'的作用是使跟在\后面的特殊符号失去特殊含义
[root@wenhaijin tmp]# name=wenhaijin
[root@wenhaijin tmp]# echo $name
wenhaijin
[root@wenhaijin tmp]# echo \$name
$name
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息