[Shell]Bash基本功能:通配符与特殊符号

时间:2021-06-04 06:15:10

/*-------------------------------------------------------------------------------------------

  @黑眼诗人 <www.farwish.com>

--------------------------------------------------------------------------------------------*/

一. 通配符:

?    匹配一个任意字符。

*    匹配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