1、通配符
通配符 | 作用 |
? | 匹配一个任意字符 |
* | 匹配0个或任意多个任意字符,也就是可以匹配任何内容 |
[ ] | 匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c。 |
[ - ] | 匹配中括号中任意一个字符,—代表一个范围。例如:[a-z] 代表匹配一个小写字母 |
[ ^ ] | 逻辑非,表示匹配不是中括号内的一个字符。例如:[ ^0-9]代表匹配一个不是数字的字符 |
示例:
[root@localhost ~]# cd /tmp/ 进入到/tmp/目录中,因为下面要演示一个删除操作,/tmp/作为临时目录,做一些操作对系统本身影响小。
[root@localhost tmp]# ls 查询当前目录下的文件
[root@localhost tmp]# rm rf * 删除/tmp/目录下所有的内容
[root@localhost tmp# ls 此刻执行完,应该什么内容都没有
[root@localhost tmp]# touch abc 在当前目录下创建一个文件abc
[root@localhost tmp]# touch abcd 在当前目录下创建一个文件abcd
[root@localhost tmp]# touch 123 在当前目录下创建一个文件123
[root@localhost tmp]# touch 0abc 在当目录下创建一个文件0abc
[root@localhost ~]# ls
[root@localhost ~]# ls *abc 查询末尾为abc的任意文件
[root@localhost ~]# ls *abc* 查询文件名中间为abc的文件
[root@localhost ~]# ls ?abc 查询文件名为4个字符,且末尾是abc
[root@localhost ~]# ls [0-9]abc 表示查询开头为一个数字,末尾是abc的文件
[root@localhost ~]# ls [^0-9]abc 表示查询开头不是数 字的末尾是abc的文件
2、Bash中其他特殊符号
符号 | 作用 |
' ' | 单引号。在单引号中所有的特殊符号,如“$”和“ ` ”(反引号)都没有特殊含义 |
“ ” | 双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“ 、”和“ · ”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义 |
· · | 反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样,不过推荐使用$(),因为反引号非常容易看错 |
# | 在shell脚本中,#开头的行代表注释 |
$ | 用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值 |
\ | 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不得当做是变量引用 |
$() | 和反引号作用一样,用来引用系统命令 |
1)单引号与双引号:
[root@localhost tmp]# name=sc
[root@localhost tmp]# echo $name
sc
[root@localhost tmp]# echo '$name'
$name
[root@localhost tmp]# echo "$name"
sc
[root@localhost tmp]#
2)反引号$()的作用:
[root@localhost ~]# abc=`date`
[root@localhost ~]# echo $abc
2018年 12月 16日 星期日 15:16:27 CST
[root@localhost ~]# abc=$(date)
[root@localhost ~]# echo $abc
2018年 12月 16日 星期日 15:17:11 CST
[root@localhost ~]#
[root@localhost ~]# echo $(ls)
abc anaconda-ks.cfg cde cdef install.log install.log.syslog sh testfile 公共的 模板 视频 图片 文档 下载 音乐 桌面
[root@localhost ~]# echo '$name'
$name
[root@localhost ~]# echo `$name`
-bash: sc: command not found
[root@localhost ~]# echo "$name"
sc
[root@localhost ~]# echo '$(date)'
$(date)
[root@localhost ~]# echo "$(date)"
2018年 12月 16日 星期日 15:20:26 CST
[root@localhost ~]#
总结:双引号括起来的内容中有特殊符号;
反引号和$() 调用的内容表示系统命令
#表示注释,特殊除外。比如shell脚本中第一行,表示标识。