Linux中单引号和双引号的区别
单引号
单引号可以结将它中间的所有的任意字符还原为字面意义,实现屏蔽Shell元字符的功能。注意,不可以在两个单引号中间插入一个单独的单引号。即,单引号必须成对出现。
[root@cc ~]# char GOAL=tencent //定义一个变量
[root@cc ~]# typeset -r GOAL //设置该变量为只读属性
[root@cc ~]# echo '$GOAL' //你们猜执行命令结果是什么?
$GOAL //命令执行结果,$被单引号屏蔽
[root@cc ~]# echo 'test\'
test\ //命令执行结果,\(换行)被单引号屏蔽
双引号
双引号类似于单引号,但是其不会屏蔽’,\和$这三个Shell元字符的含义。如果需要屏蔽这些字符含义,需要前置一个\符号,其他字符的功能将会被屏蔽(包括单引号)。也就是说,两个双引号之间的单引号不必成对出现
[root@cc ~]# echo "This's a book." //命令执行结果,单引号不会被屏蔽
This's a book.
[root@cc ~]# echo "$GOAL"
tencent
[root@cc ~]# echo "\$GOAL" //加\,元字符被屏蔽
$GOAL