linux系统转义符有哪些?

linux系统转义符有哪些?,第1张

(1)转义字符“”

如果将“”放到特殊字符前面,shell就忽略这些特殊字符的原有含义,

把它们当作普通字符对待,例如:

上 是将abc?*重命名为abc,将C:backup重命名为backup。因为 件

名中包含特殊字符,所以都使 了转义字符“”。

(2)单引号“ ' ”

如果将字符串放到 对单引号之间,那么字符串中所有字符的特殊含义将被忽略,例如:

上面两条命令完全等效

(3)双引号“""”

双引号的引用与单引号基本相同,包含在双引号内的大部分特殊字符

可以当作普通字符处理,但是仍有一些特殊字符即使 双引号括起来,也

仍然保留自己的特殊含义,比如“$”、“”和“`”。

从上面的输出可以看出,“$”和“”在双引号内仍然保留了特殊含义。

上面的输出中,字符“`”在双引号中也保留了自己的特殊含义。

单引号:可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换。双引号:把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。不加引号:不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。使用规则:一般常量用单引号''括起,如果含有变量则用双引号""括起。最大不同:单引号与双引号的最大不同在于双引号仍然可以保有变数的内容,但单引号内仅能是一般字元,而不会有特殊符号使用举例:“”号里面遇到$,\等特殊字符会进行相应的变量替换‘’号里面的所有字符都保持原样对于字符串,两者相同匹配模式也大致相同但有一些区别非常容易混淆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执行的是相同的命令


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8450276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存