题目
用 awk 输出文本:single quote'
方式1:双引号中带单引号
awk 'BEGIN { print "single quote'" }'
方式2:单引号中带单引号
awk "BEGIN { print \"single quote'\''\" }"
方式3:使用八进制转义
awk 'BEGIN { print "single quote\47" }'
方式4:使用变量(本例为q)
awk -v q="'" 'BEGIN { print "single quote"q }'
小结
- 单引号内的内容不被
shell
扩展,是什么就输出什么; - 在单引号内嵌入另一个用单引号引用的文本,是不可能实现的;
shell
中的$
、\
、"
、`
都是有特殊含义的,作文本输出时,应该用 反斜杠 转义;- 当双引号或单引号容易混淆时,可以用八进制序列进行转义。