单引号和双引号在被引用过程中均被转义为普通字符
-
[root@oracle ~]# a=123
-
[root@oracle ~]# echo "$a"
-
123
-
[root@oracle ~]# echo '$a'
-
$a
-
[root@oracle ~]# echo '"$a"'
-
"$a"
以前只觉得上面几个是理所当然的
但是突然发现
-
[root@oracle ~]# echo "'$a'"
-
'123'
虽然 $a 被单引号包围着,但是最外层是双引号,因此被最外层包裹的 $a 被替换成了变量a 的值
总结:是否替换引号内的 $a 不是取决于离$a最近的那个引号,而是最外层那一对引号
其实这个问题早在shell十三问中就有提及,只是第一次看的时候没太注意,在此提示以加深印象
有关单双引号的讨论(shell十三问):
阅读(2166) | 评论(0) | 转发(0) |