引用符号在解析器中保护特殊元字符和参数扩展,其使用方法有3种:反斜杠(\),单引号(’‘),双引号(“”)。
单引号和双引号必须匹配使用,均可在解析器中保护特殊元字符和通配符,但是单引号(硬转义)主要用于信息的原样输出,防止任何变量的扩展,双引号(软转义)允许变量扩展、转义符和命令替换。单引号保护双引号,双引号保护单引号。
1.反斜杠
反斜杠通过解析器将1个字符转化为引用符号或转义。
1)在单引号内使用反斜杠,反斜杠不会被解析,保持原样输出。
2)在双引号内使用反斜杠,主要用于美元符号($),反单引号(``),双引号(“”),单引号(‘’)的输出,以及转义符的解析,其中单引号的输出中,反斜杠和双引号不能同时使用。
3)不使用单引号和双引号(如:echo \,输出为空),则反斜杠可以被看做自动忽略。
2.单引号
1)单引号内不允许任何变量、元字符、通配符、转义符的解析,均被原样输出。
2)使用双引号或反斜杠转义可显示输出单引号,但是双引号和反斜杠不能被同时使用。
如命令:echo “‘”,输出结果会为(’),而不是(')
3)可解析正则表达式,与sed和grep命令配合使用
3.双引号
保护特殊元字符和通配符不被shell解析,但是允许变量和命令替换,以及转义符的解析。
4.附录
在此顺便学习一下linux常见的特殊字符,包括通配符、转义符和元字符。
4.1 通配符(wildcard)
通配符实际上是一种shell实现的路径扩展功能,当shell在“参数”中遇到通配符后,会将其当做路径或文件名在磁盘上搜寻可能的匹配,以下表格中列出了比较常用的shell通配符,以供大家参考和学习。
字符含义实例匹配一个或多个字符ab a与b之间可以有任意长度的字符?匹配任意一个字符a?b a与b之间必须也只能有一个字符[list]匹配list中任意单一字符a[xyz]b a与b之间必须也只能有一个[xyz]之间的字符
a[0-9]b a与b之间必须也只能有一个0-9之间的数字字符
a[!0-9]b a与b之间有且只有一个字符,同时字符不能为0-9{string list}匹配字符串列表中的任一字符串a{abc,xyz,123}b a与b之间只能为abc或xyz或123 需要说明的是,通配符与正则表达式语句有些相似,但它与正则表达式不同,只能将其理解为shell特殊字符即可,而且只涉及*,?,[]和{}。
4.2 元字符(Meta)
字符说明;命令分隔符,在前一个命令结束时,忽略其返回值,继续执行下一个命令&后台运行命令,最大的好处是无需等待命令执行结束,就可以在同一命令行下继续输入命令=变量名=值,为变量赋值。注意"=“左右紧跟变量名和值,中间不要有空格 变量值替换, " 变量值替换," 变量值替换,"变量名"替换为shell变量的"值”,为避免在文本连接时混淆,请使用 变量名 > 输出重定向, p r o g > f i l e 将标准输出重定向到文件(覆盖原文件内容) > > 输出重定向, p r o g > > f i l e 将标准输出追加到文件 < 输入重定向, p r o g < f i l e 从文件 f i l e 中获取标准输入 ∣ 管道命令,例: p 1 ∣ p 2 将 p 1 的标准输出作为 p 2 的标准输入()在子 s h e l l 中执行命令,或用于运算,或用于命令替换( {变量名}>输出重定向,prog > file 将标准输出重定向到文件(覆盖原文件内容)>>输出重定向,prog >> file 将标准输出追加到文件<输入重定向,prog < file 从文件file中获取标准输入|管道命令,例:p1 | p2 将p1的标准输出作为p2的标准输入()在子shell中执行命令,或用于运算,或用于命令替换( 变量名>输出重定向,prog>file将标准输出重定向到文件(覆盖原文件内容)>>输出重定向,prog>>file将标准输出追加到文件<输入重定向,prog<file从文件file中获取标准输入∣管道命令,例:p1∣p2将p1的标准输出作为p2的标准输入()在子shell中执行命令,或用于运算,或用于命令替换((command)){}在当前shell中执行命令,或用在变量替换的界定范围(例如上面的${变量名}用法)&&前一个命令执行成功后,才继续执行下一个命令。例:p1 && p2 ,若p1执行成功后,才执行p2,反之,不执行p2||前一个命令执行失败后,才继续执行下一个命令。例:p1 || p2 ,若p1执行成功后,不执行p2,反之,才执行p2!执行历史记录(history列表)中的命令,如!1~用户主目录
4.3 转义符
shell提供的转义符有3中:单引号(‘’),双引号(“”),反斜杠(\)。转义符已在上述内容中进行了详细介绍,在此只是对其做一个简单总结。
字符说明’(单引号)硬转义,其内部所有的shell元字符、通配符等都不会被解析,用于参数的原样输出。注意,硬转义中不允许再出现单引号""(双引号)软转义,可用于保护元字符和通配符,但是允许变量和命令替换的扩展,也允许反斜杠转义符的解析\(反斜杠)转义,保护元字符或通配符不被shell解析,主要用于双引号,单引号,反单引号和美元符号 与echo和sed连用时,常用的反斜杠转义字符如下表所示:
转义符意义\a响铃字符\b后退符,即删除前一个字符\c输出不换行,与/n作用相反\d以“星期、月、日”表示日期\f换行,但光标仍停留在原处\h或\H显示基本主机名或显示完整的主机名\t或\T24小时或12小时制时间
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。