* 万能匹配字符或通配符,用于shell下的文件名匹配(这个东西有个专有名词叫file globbing)或者是正则表达式中.在正则表达式匹配中的作用和在文件名匹配中的作用是不同的.
Shell里匹配任意字符。如:ls d* 匹配以d开头的任意字符。
在正则表达式里*匹配它之前的一个字符任意次(包括0次)。如:oi*o可以是oo,oio,oiio,oiiio…
? 在通配符(file globbing)中匹配任意的单个字符(不能为0个字符)
在regexp中与前一个字符一起发挥作用,匹配前一个字符0次或1次。
" 部分引用."STRING"阻止了一部分特殊字符,
' 全引用. 'STRING' 阻止了全部特殊字符,
shell将输入的字符分为两种:
1.普通字符 a-zA-Z,0-9等.
2.元字符,即具有特定功能的字符,如*,?,>,$等等。
引用可以去除shell对原字符的解释,“”部分引用去除部分原字符的特殊含义,保留某些原字符的含义如 $ .全引用是全部阻止原字符的含义.因此部分引用内部可以用 $ 引用变量.但不论是部分引用还是全引用,都只是阻止shell对原字符的特殊解释,并不影响shell下输入的命令对特殊字符的解释。
可见引号的特殊效果就是,保护字符串中的特殊字符不被shell或者是shell脚本重新解释或者扩展,保护命令行中的参数,但还是允许正在调用的程序来扩展它.特定的程序和工具能够重新解释或扩展特殊的字符.