您当前的位置:首页 > 计算机 > 系统应用 > Linux

关于grep的引号使用问题

时间:04-02来源:作者:点击数:

单引号:

所见即所得:即将单引号中内容原样输出,也就是单引号''是全引用。

双引号:

解析式输出:如果双引号的内容中有命令、变量等,会先把变量、命令解析成结果,再将结果输出。双引号""是部分引用。

单双引号:

综上:常量用单引号''括起,而含有变量则用双引号""括起。单双可同时出现,单扩住双。

举例:

“”号里面遇到$,\等特殊字符会进行相应的变量替换

‘’号里面的所有字符都保持原样

对于字符串,两者相同

匹配模式也大致相同

但有一些区别非常容易混淆

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执行的是相同的命令

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门