Linux单引号和双引号辨析

在编写shell脚本的时候经常会用到引号,有些时候却老是忘记单引号和双引号之间的区别,

所以就整理一下供以后脑子不好使了的时候前来复习一下。首先说下他们的共同点: 好像就只有

一个,就是它们都可以用来界定一个字符串,这个没什么好解释的,真正需要记住的是它们区别,

所以经过整理后,它们的区别主要包括:

1)、单引号属于强引用,它会忽略所有被引起来的字符的特殊处理,被引用起来的字符会被原

封不动的使用,唯一需要注意的点是不允许引用自身;

2)、双引号属于弱引用,它会对一些被引起来的字符进行特殊处理,主要包括以下情况:

1:$加变量名可以取变量的值 ,比如:

[root@localhost ~]# echo 'PWD'PWD

[root@localhost ~]# echo "$PWD"

/root

2:反引号和$()引起来的字符会被当做命令执行后替换原来的字符,比如:

[root@localhost ~]# echo '(echo hello world)'(echo hello world)
  [root@localhost ~]# echo "$(echo hello world)"
  hello world

[root@localhost ~]# echo 'echo hello world'
echo hello world
[root@localhost ~]# echo "echo hello world"
hello world

3:当需要使用字符($ ` " \)时必须进行转义,也就是在前面加\ ;

[root@localhost ~]# echo '` " \' " \ [root@localhost ~]# echo "\$ \ " \"
$ ` " \

转载自:http://www.cnblogs.com/panhongyin

你可能感兴趣的:(Linux单引号和双引号辨析)