关于grep的引号使⽤问题
单引号:
所见即所得:即将单引号中内容原样输出,也就是单引号''是全引⽤。
双引号:
解析式输出:如果双引号的内容中有命令、变量等,会先把变量、命令解析成结果,再将结果输出。双引号""是部分引⽤。
单双引号:
综上:常量⽤单引号''括起,⽽含有变量则⽤双引号""括起。单双可同时出现,单扩住双。
举例:
“”号⾥⾯遇到$,\等特殊字符会进⾏相应的变量替换
‘’号⾥⾯的所有字符都保持原样
对于字符串,两者相同
匹配模式也⼤致相同
但有⼀些区别⾮常容易混淆
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执⾏的是相同的命令
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论