shell中的特殊字符有  
1、$ 美元符  
2、\ 反斜杠  
3、` 反引号  
4、" 双引号  
5、< ,>,*,?,[,]  
下面我一一举列说明  
一、$符号  
1、echo $? 显示的是上一条指令退出状态  
2、echo "$?" 效果同上  
3、echo '$?' 显示的是$?  
4、echo \$? 显示的是$?  
5、echo "\$?" 显示的是$?  
大家可能已经看出 $符号在双引号中具有特殊意义 双引号对$符号不起作用而单引号可以将特殊字符的的特殊意义屏蔽掉,使其能显示为字符本身,反斜杠也可以将特殊字符的特殊含义屏蔽掉,使特殊字符失去特殊含义。  
二、\ 反斜杠  
反斜杠的作用是将特殊符号字符的特殊含义屏蔽掉,使其还是原字符  
A=1234  
echo \$A 显示为$A 如果不加\将显示为1234  
echo \` 显示为`  
echo \" 显示为双引号  
echo \\ 显示为\  
三、` 反引号  
反引号的功能是命令替换,将反引号中的字符串做为命令来执行,我们在用shell编程时经常用的到 将系统命令的执行结果赋给一个变量  
A=`date`  
echo $A 显示的不是date而是当时的时间串  
比如有一文件A的内容如下   
ABCDEFG  
1234456  
abcdefg  
B=`cat A|grep 234`? # 检索文件A中含有字符串234的行  
echo $B 将显示为1234456  
echo "$B" 将显示为什么?  
echo "\$B" 将显示为什么?读者自己试试  
四、" 双引号 
在系统中有些特殊字符,为避免引用这些特殊字符 往往用双引号或单引号将这些特殊字符引起来,使其不具有特殊含义。  
但有一部分特殊字符在引号中还是具有特殊含义,用双引号引起来是不起作用的。本文中所列的前四个特殊字符在双引号中还是特殊字符。为了使其不具有特殊含义一是用单引号引进来二是用\反斜线使其失去作用。  
比如我们想原样输出这些特殊字符  
echo """  
echo "$"  
echo "\"  
echo "`"  
以上不是你所期望的结果,因为双引号对它们不起作用,你只能这样才能输出这些特殊字符的原形  
echo '"'  
echo '$'  
echo '\'  
echo '`'  
或  
echo "\""  
echo "\$"  
echo "\\"  
echo "\`"  
将分别显示为 " $ \ `  
五、其它特殊字符 
大家注意到,除了前四个特殊字符外,我将其它的特殊字符都放在一块,这是因为前四个特殊字符在双引号中还是具有特殊含义,所以单独拿出来讲,除此以外的特殊字符如果你要输出这些特殊字符的原形,你就可以用双引号或单引号引起来使其失去特殊含义。  
< ,>,*,?,[,]对shell有特殊含义 但你可以用双引号引起来输入这些原形  
                        
                                                
                                        
                        
                    
                    
            
