加单引号、双引号和不加引号的区别

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

加单引号、双引号和不加引号的区别
加单引号、双引号和不加引号的区别
单引号:
可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号⾥⾯看到的是什么就会输出什么。

单引号''是全引⽤,被单引号括起的内容不管是常量还是变量者不会发⽣替换。

双引号:
把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。

双引号""是部分引⽤,被双引号括起的内容常量还是常量,变量则会发⽣替换,替换成变量内容。

不加引号:
不会将含有空格的字符串视为⼀个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,⼀般连续的字符串,数字,路径等可以⽤。

使⽤规则:
⼀般常量⽤单引号''括起,如果含有变量则⽤双引号""括起。

最⼤不同:
单引号与双引号的最⼤不同在于双引号仍然可以保有变数的内容,但单引号内仅能是⼀般字
元,⽽不会有特殊符号
使⽤举例:
“”号⾥⾯遇到$,\等特殊字符会进⾏相应的变量替换
‘’号⾥⾯的所有字符都保持原样
对于字符串,两者相同
匹配模式也⼤致相同
但有⼀些区别⾮常容易混淆
grep "$a" file #引⽤变量a,查找变量a的值
grep '$a' file #查找“$a”字符串
grep "\\" file #grep: Trailing backslash(不知原因)
grep '\\' file #查找‘\’字符
1、$ 美元符
2、\ 反斜杠
3、` 反引号
4、" 双引号
这四个字符在双引号中是具有特殊含义的,其他都没有,⽽单引号使所有字符都失去特殊含义
如果⽤双引号,查找⼀个\,就应该⽤四个\:
grep "\\\\" file 这样就对了,这样等同于:
grep '\\' file
第⼀条命令shell把四个\,转义成2个\传递给grep,grep再把2个\转义成⼀个\查找第⼆条命令shell没转义,直接把2个\传递给grep,grep再把2个\转义成⼀个\查找其实grep执⾏的是相同的命令。

相关文档
最新文档