义或用法。
当我们需要去掉元字符的特殊含义而恢复其字面意义时就必须使用"引用".通常有三种引用
方式,分别是转义(Escape,使用反斜杠字符\),强引用(使用单引号)和弱引用(使用双引号):
- 转义是用反斜杠放在需要转义的字符前,使得"元字符"变成普通字符。
- 强引用是用单引号把字符串包含起来,其中任何字符都看作普通字符(包括双引号),除
了单引号自身。所以无法在两个单引号之间包含一个单引号,用\转义也不行(\已被当作普
通字符,失去了转义的作用)。 - 弱引用是用双引号把字符串包含起来,除了“(双引号,double quote),\(反斜杠,
backslash),$(美元符号),`(注意不是单引号,而是反引号,ESC下的那个键,作用是命令替
换)之外,其他的大部分字符被当作普通字符。
好像上面已经把规则说得够清楚了,那么试着解读一下下面这个语句:
awk 'BEGIN {print "Here is a single quote <'"'"'>"}'
输出:
Here is a single quote <'>
乍一看,对于这个结果还是蛮惊讶而且比较迷糊。其实这里利用了shell的引用的一个原则:
引用与后面接着的非引用字符,或者其他引用,会整合一个命令参数
所以对于上面那个例子的解释是,其实包括了三个引用:
- 'BEGIN { print "Here is a single quote<'
- "'"
- '>" }'
awk ’BEGIN { print "Here is a single quote <’\’’>" }’
awk "BEGIN { print \"Here is a single quote <’>\" }"
参考资料:这里
没有评论:
发表评论