[Shell] Bash基本功能:通配符与特殊符号
一. 通配符:
? 匹配一个任意字符。
* 匹配0个一个或多个任意字符。
[] 匹配中括号中任意一个字符。
[-] 匹配中括号中任意一个字符,- 代表范围。
[^] 逻辑非,匹配不是中括号内的一个字符
通配符是用来匹配文件名的:
mkdir tmp;
touch abc;
touch 0abc;
touch abcd;
touch aabc;
ls *abc; #匹配abc,0abc,aabc
ls *abc*; #匹配abcd
ls ?abc; #匹配0ab,aabc
ls [0-9]abc; #匹配0abc
ls [^0-9]abc; #匹配aabc
二. 特殊符号:
单引号(' '):在单引号中所有的特殊符号,都没有特殊含义。
双引号(" "):在双引号中特殊符号都没有特殊含义。但是"$", "`" 和 "\" 例外,拥有"调用变量的值","引用命令" 和 "转义符"的特殊含义。
反引号(``):反引号括起来的内容是系统命令,在Bash中会先执行它,和$()作用一样,推荐使用$(),因为反引号非常容易看错。
$():和反引号作用一样,用来引用系统命令。
#:在Shell脚本中,#开头的行代表注释。
$:用于调用变量的值,如需要调用变量name的值,需要用$name的方式得到变量的值。
\:转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出"$"符号,而不当做是变量引用。
name=www.chenwei.ws
echo $name # www.chenwei.ws
echo '$name' # $name
echo "$name" # www.chenwei.ws
ab=`date`
echo $ab # 2014年 08月 18日 星期一 21:25:52 CST
echo $(date) #2014年 08月 18日 星期一 21:25:52 CST
Refer:什么是Bash通配符