bash中的引号

来源:互联网 发布:小土豆编程系统下载 编辑:程序博客网 时间:2024/06/18 05:37

http://blog.163.com/laosan.../blog/static/4013233320115220554123/

1. 单引号 '

2. 双引号 "
3. 反引号 `

单引号
        两个单引号包围起来的字符串就是普通的字符串,它将保留原始的字面意思.
双引号
        两个双引号包围起来的字符串,部分特殊字符将起到它们的作用.
        这些特殊字符有: 美元符$, 反斜杠\, 反引号,  感叹号!.
反引号
        两个反引号包围起来的字符串,将作为命令来运行,
        执行的输出结果作为该反引号的内容,称为命令替换,
        它有另一种更好的写法: $(command)
A.bash中单引号: "''"
目的: 为了保护文字不被转换.除了他本身. 就是说除去单引号外, 在单引号内的所有文字都是原样输出.
1. [root@jszwl161 SP49EP9]# echo '$*><!'
   $*><!
2. [root@jszwl161 SP49EP9]# echo 'she is crying: "help"'
   she is crying: "help"
3. [root@jszwl161 SP49EP9]# echo '\\\\'
   \\\\
4. [root@jszwl161 SP49EP9]# echo 'hah 'test''
   hah test   #略去了所有'
5. [root@jszwl161 SP49EP9]# echo ' today is `date`'
   today is `date`  #反引号在此无法实现函数功能.
B. bash中的双引号 " "" "
目的: 为了包含文字或者函数段. 除了本身,反引号内的函数,$开头的变量和\开头反转换的字符外, 其余都是直接输出.
1. [root@jszwl161 SP49EP9]# echo "today is `date`"
   today is Fri Jul  4 08:03:34 GMT 2008
2. [root@jszwl161 SP49EP9]# echo "today is 'date'"
   today is 'date'
3. [root@jszwl161 SP49EP9]# echo "\\\\"
   \\
4. [root@jszwl161 SP49EP9]# echo "test "test""
   test test
C. 反引号" `` "
目的是为了在双引号内保持函数转换. 但单引号内其无作用.
1. [root@jszwl161 SP49EP9]# echo "today is `date`"
    today is Fri Jul  4 08:03:34 GMT 2008   #将函数date转换.
2. [root@jszwl161 SP49EP9]# echo ' today is `date` '
    today is `date`   #在单引号内无作用.