grep 后加单引号、双引号和不加引号的区别
请尊重版权,原文地址:https://blog.csdn.net/cupidove/article/details/8783968
单引号:
可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换。
双引号:
把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。
不加引号:
不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。
使用规则:
一般常量用单引号''括起,如果含有变量则用双引号""括起。
最大不同:
单引号与双引号的最大不同在于双引号仍然可以保有变数的内容,但单引号内仅能是一般字
元,而不会有特殊符号
使用举例:
“”号里面遇到$,\等特殊字符会进行相应的变量替换
‘’号里面的所有字符都保持原样
对于字符串,两者相同
匹配模式也大致相同
但有一些区别非常容易混淆
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执行的是相同的命令
grep 后加单引号、双引号和不加引号的区别的更多相关文章
- ajax post 传参数加引号和不加引号的区别
1.前言 用ajax技术,type:post,data:参数列表.参数列表就是一个JSON数据,但key可以加引号,也可以不加引号,那总有区别的. 2.区别 var d2 = "two&qu ...
- python中的单引号,双引号,三引号
转载自: http://blog.csdn.net/wanghai__/article/details/6285310 先说1双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行 如: s1 ...
- Shell中的单引号(‘)双引号(”)和反引号(·)
在bash中,$.*.?.[.].’.”.`.\.有特殊的含义.类似于编译器的预编译过程,bash在扫描命令行的过程中,会在文本层次上,优先解释所有的特殊字符,之后对转换完成的新命令行,进行内核的系统 ...
- strpos 返回0时 ,比较false 不能加单引号
$a = 'a.approve'; $num = strpos($a,'a.admin'); if(strpos($a,'a.approve') !== 'false'){ //不能加单引号.变字符 ...
- 转发:【PHP】转义和过滤html单、双引号及HTML标签
一.单引号和双引号转义在PHP的数据存储过程中用得比较多,即往数据库里面存储数据时候需要注意转义单.双引号: 先说几个PHP函数: 1.addslashes — 使用反斜线引用(转义)字符串: 返回字 ...
- MyBatis做动态模糊查询时,like后面要不要加单引号??
做项目遇到了个奇怪的问题,项目里面要对商品.账户.进行分别的多条件查询,于是我就采用动态多条件分页查询,起初在做账户部分的时候Mybatis是这样写的 <!-- 动态多条件分页查询 --> ...
- 描述Linux shell中单引号,双引号及不加引号的简单区别(计时2分钟)
简要总结: 单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么. 双引号: 把双引号内的内容输出出来:如果内容中有命令.变量等,会先把变量.命令解析 ...
- Linux中的元字符和转义符 单引号 硬引号 双引号 软引号
Linux中的元字符和转义符 单引号 硬引号 双引号 软引号 Linux就这个范儿 Linux就这个范儿 P182单引号:硬引号,所有元字符特殊意义都会关掉双引号:软引号,只允许出现特定元字符 ...
- JS声明对象时属性名加引号与不加引号的问题
般情况下属性名加引号和不加引号是都可以的,效果是一样的. var obj = { name : '你好', 'age' : 1, }; document.write( obj['name'] + '& ...
随机推荐
- 如何在vue里面调用高德地图
1.修改webpac.base.conf.js文件 与module同一级添加 externals: { 'AMap': 'AMap', 'AMapUI': 'AMapUI' }配置. 然后在index ...
- 斯坦福【概率与统计】课程笔记(六):EDA | 标准差和方差
这一篇比较简单,就不展开记录了,方差和标准差的计算方法记住了就可以. 计算mean 计算每个样本与mean的差值的平方,将其累加后除以(样本数-1)[注:这里的除数可以是n-1也可以是n],即得到方差 ...
- python-javascript之bom
BOM BOM介绍 全称 Browser Object Mode 浏览器对象模式 操作浏览器的API接口.比如浏览器自动滚动 Windows对象的顶层部分是BOM的顶层(核心)对象,所有的对象都是通过 ...
- 2019 牛客多校第一场 B Integration
题目链接:https://ac.nowcoder.com/acm/contest/881/B 题目大意 给定 n 个不同的正整数 ai,求$\frac{1}{\pi}\int_{0}^{\infty} ...
- maven私服的项目使用配置
环境: eclipse .maven.nexus. 1.配置setting.xml文件 1.1.配置本地仓库位置:文件中,存在节点 “localRepository”,默认是注释,也就是本地仓库使用 ...
- C#读取Xml中出现”&”等特殊符号
原文:C#读取Xml中出现"&"等特殊符号 C#读取Xml中出现的特殊符号时用ASCII或者转定义名称代替.程序读进来后转成字符串后就自动变成相应的字符了,再度保存时会以正 ...
- Java 编写过滤手机号码或者固定电话的工具类
以下是分享自己编写的用于过滤手机号码.固定电话.黑名单的工具类TelCheckUtils, import java.util.HashSet; import java.util.Set; import ...
- 一、spring的基本认识
Spring的认识 Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用 Spring是于2003 年兴起的一个轻量级的J ...
- 轻松上手nodeJs爬取想要页面的数据
开始之前请先确保自己安装了Node.js环境!!!!!!!! 1.在项目文件夹安装两个必须的依赖包 npm install superagent -S SuperAgent(官网是这样解释的) --- ...
- mysql中关于--login-path使用
在控制台登陆数据库,快捷登录 在控制台连接数据库,需要每次输入账号密码,感觉很麻烦,偶然发现可以通过login-path保存信息,实现快捷登录,这里记录下. 保存账号信息 mysql_config_e ...