反引号位 (`) 位于键盘的Tab键的上方、1键的左方。注意与单引号(')位于Enter键的左方的区别。
  在Linux中起着命令替换的作用。命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。
  如下,shell会执行反引号中的date命令,把结果插入到echo命令显示的内容中。
  [root@localhost sh]# echo The date is `date`
  The date is 2011年 03月 14日 星期一 21:15:43 CST
  
  单引号、双引号用于用户把带有空格的字符串赋值给变量事的分界符。
  [root@localhost sh]# str="Today is Monday"
  [root@localhost sh]# echo $str
  Today is Monday
  如果没有单引号或双引号,shell会把空格后的字符串解释为命令。
  [root@localhost sh]# str=Today is Monday
  bash: is: command not found
  单引号和双引号的区别。单引号告诉shell忽略所有特殊字符的含义(原字符输出),而双引号忽略大多数,但不包括$、\、`。
  [root@localhost sh]# testvalue=100
  [root@localhost sh]# echo 'The testvalue is $testvalue'
  The testvalue is $testvalue
  [root@localhost sh]# echo "The testvalue is $testvalue"
  The testvalue is 100


       但有些命令是支持正则表达式,例如grep命令,第一个$为变量引用符,第二个$为正则的行尾锚定符。

        [root@bogon ~]#a=bash

        [root@bogon ~]#grep '$a$' /etc/passwd

        输出结果为空

        [root@bogon ~]#grep "$a$" /etc/passwd

        如果改为双引号,则输出结果为:

        root:x:0:0:root:/root:/bin/bash


        脚本的执行原理是:bash先进行每行命令解释,然后把解释的结果在发送给命令,

        执行grep '$a$' /etc/passwd时,bash先解释命令,输出信息为grep $a$ /etc/passwd,然后系统调用grep命令进行解释,相当于在/etc/passwd中查看$a结尾的行。

        执行grep "$a$" /etc/passwd时,bash先解释命令,输出信息为grep root$ /etc/passwd,然后系统调用grep命令进行解释,相当于在/etc/passwd中查看root结尾的行。