单引号和双引号在本引用过程中均被转义为普通字符

2200阅读 0评论2015-05-07 stupid_lee
分类:LINUX

单引号和双引号在被引用过程中均被转义为普通字符

点击(此处)折叠或打开

  1. [root@oracle ~]# a=123
  2. [root@oracle ~]# echo "$a"
  3. 123
  4. [root@oracle ~]# echo '$a'
  5. $a
  6. [root@oracle ~]# echo '"$a"'
  7. "$a"
  以前只觉得上面几个是理所当然的
 但是突然发现
 

点击(此处)折叠或打开

  1. [root@oracle ~]# echo "'$a'"
  2. '123'
  虽然 $a 被单引号包围着,但是最外层是双引号,因此被最外层包裹的 $a 被替换成了变量a 的值
 
  总结:是否替换引号内的 $a 不是取决于离$a最近的那个引号,而是最外层那一对引号  

  其实这个问题早在shell十三问中就有提及,只是第一次看的时候没太注意,在此提示以加深印象
  有关单双引号的讨论(shell十三问):
上一篇:正则表达式匹配第一个与最后一个
下一篇:没有了