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

ls-a|grep"^\."和ls-a|grep'^\.'的作用一样... ls -a | grep "^\." 和 ls -a | grep '^\.'的作用一样 展开
 我来答
derekwuguo
推荐于2017-10-08 · TA获得超过326个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:192万
展开全部
单引号与双引号的最大不同在于双引号仍然可以保有变量的内容,但单引号内仅能是
一般字符 ,而不会有特殊符号。我们以底下的例子做说明:假设您定义了一个变量,
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 将失去原有的变量内容, 仅为
一般字符的显示型态而已!这里必需要特别小心在意!
本文出自 51CTO.COM技术博客
七家生0D
2010-06-21 · TA获得超过1944个赞
知道小有建树答主
回答量:1675
采纳率:0%
帮助的人:1270万
展开全部
当然有区别了
在CU上面有专门的帖子解释单引号和双引号的差别

举个最简单的例子

lix@lxLaptop:~/bash/lx/done/pms$ a=127711
lix@lxLaptop:~/bash/lx/done/pms$ cat date.log |grep "$a"
Mon Jun 21 17:00:02 CST 2010 1277110506 1277110802 296
Mon Jun 21 17:15:03 CST 2010 1277111651 1277111703 52
Mon Jun 21 17:30:02 CST 2010 1277112247 1277112602 355
lix@lxLaptop:~/bash/lx/done/pms$ cat date.log |grep '$a'
lix@lxLaptop:~/bash/lx/done/pms$
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
masterfoo
2010-06-21 · TA获得超过579个赞
知道小有建树答主
回答量:197
采纳率:100%
帮助的人:0
展开全部
说到引号的区别,先要说为什么要用引号,shell命令中有些特殊字符,比如$,^,*等等,如果我们想要把这些特殊字符的功能关掉的话就必须使用引号或者斜杠\,比如 ls "a*",或者ls 'a*',或者ls a\*这就会输出名字为a*的文件,而不是以a开头的文件。
不说斜杠,只说单引号和双引号的区别,它们在shell中的引文的叫法不一样,双引号叫soft quote,单引号叫hard quote,顾名思义,单引号更加严格,比如overawe的例子,对于$符号,单引号一样会关掉它的功能,而双引号不会,它会把它当成变量来替换掉,有兴趣的话你可以比较单引号套双引号的变量和双套单的变量输出的区别,a=1;echo "'$a'" ;echo '"$a"'
希望对你有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式