- 引用和转义
引用和转义
HAProxy 的配置文件也包含了和其他编程语言中类似的引用、转义系统。配置文件支持三种类型:
- 用反斜杠来转义
- 用双引号来弱引用
- 用单引号来强引用如果要在字符串里加入空格,则需要在空格前加一个反斜杠来转义或引用一个空格。如果要插入一个反斜杠,可以通过两个反斜杠来转义或强引用一个反斜杠。
举例,使用前置的反斜杠来转义字符:
\:转义一个空格,表明不是一个普通分隔符#:转义一个井号,表明不是一行注释\:转义一个反斜杠\':转义一个单引号,表明不是一个强引用\":转义一个双引号,表明不是一个弱引用通过两个双引号来表明弱引用,使用弱引用可以防止::把空格当作参数的分隔符':把单引号当作强引用#:把井号当作注释标识使用弱引用时允许插入变量。如果想在双引号括起来的字符串中插入一个“$”符号,则你需要在前面加一个反斜杠来转义(“$”),不过这个做法在双引号外就无效了。
你可以在双引号中进行字符转义,而在单引号括起来的强引用中则不可行,强引用在引用正则表达式时效率很高。
引用和转义会在内存中进行,允许进行级联。
# 以下的执行效果都是相同的:log-format %{+Q}o\ %t\ %s\ %{-Q}rlog-format "%{+Q}o %t %s %{-Q}r"log-format '%{+Q}o %t %s %{-Q}r'log-format "%{+Q}o %t"' %s %{-Q}r'log-format "%{+Q}o %t"' %s'\ %{-Q}r# 以下的执行效果都是相同的:reqrep "^([^\ :]*)\ /static/(.*)" \1\ /\2reqrep "^([^ :]*)\ /static/(.*)" '\1 /\2'reqrep "^([^ :]*)\ /static/(.*)" "\1 /\2"reqrep "^([^ :]*)\ /static/(.*)" "\1\ /\2"
