您的位置:首页 > 运维架构 > Linux

linux 中的单引号 和双引号有什么区别

2015-09-11 13:34 891 查看
单引号与双引号的最大不同在于双引号仍然可以保有变量的内容,但单引号内仅能是
一般字符 ,而不会有特殊符号。我们以底下的例子做说明:假设您定义了一个变量,
name=VBird ,现在想以 name 这个变量的内容定义出 myname 显示 VBird its me 这
个内容,要如何订定呢?

[root@linux ~]# name=VBird
[root@linux ~]# echo $name
VBird
[root@linux ~]# myname="$name its me"
[root@linux ~]# echo $myname
VBird its me
[root@linux ~]# myname='$name its me'
[root@linux ~]# echo $myname
$name its me

发现了吗?没错!使用了单引号的时候,那么 $name 将失去原有的变量内容, 仅为
一般字符的显示型态而已!这里必需要特别小心在意!

说到引号的区别,先要说为什么要用引号,shell命令中有些特殊字符,比如$,^,*等等,如果我们想要把这些特殊字符的功能关掉的话就必须使用引号或者斜杠\,比如 ls "a*",或者ls 'a*',或者ls a\*这就会输出名字为a*的文件,而不是以a开头的文件。
不说斜杠,只说单引号和双引号的区别,它们在shell中的引文的叫法不一样,双引号叫soft quote,单引号叫hard quote,顾名思义,单引号更加严格,比如overawe的例子,对于$符号,单引号一样会关掉它的功能,而双引号不会,它会把它当成变量来替换掉,有兴趣的话你可以比较单引号套双引号的变量和双套单的变量输出的区别,a=1;echo "'$a'" ;echo '"$a"'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: