Python 可能的变化Mako';s内联开始/结束语法?

Python 可能的变化Mako';s内联开始/结束语法?,python,template-engine,jinja2,mako,Python,Template Engine,Jinja2,Mako,我一直在使用Jinja2来创建和呈现Bash脚本的模板(除其他外),但我一直没有像Mako那样提供完整python的功能 目前阻止我使用Mako的原因似乎很简单,那就是Mako的内联begin/end${/}语法与Bash自己的语法冲突(而Jinja2没有冲突) 所以我想知道的是:是否有任何方法可以将Mako的begin/end${/}语法更改为其他语法,其中其他语法与Bash不冲突 (否则,我是否遗漏了一些明显的内容?通过以下方式运行模板: from mako.template import

我一直在使用Jinja2来创建和呈现Bash脚本的模板(除其他外),但我一直没有像Mako那样提供完整python的功能

目前阻止我使用Mako的原因似乎很简单,那就是Mako的内联begin/end
${
/
}
语法与Bash自己的语法冲突(而Jinja2没有冲突)

所以我想知道的是:是否有任何方法可以将Mako的begin/end
${
/
}
语法更改为其他语法,其中其他语法与Bash不冲突


(否则,我是否遗漏了一些明显的内容?

通过以下方式运行模板:

from mako.template import Template
import re

def bash_preprocessor(source):
    source = re.sub(r"\${(.+?)}", r"${'${'}\1${'}'}", source)
    source = re.sub(r"\^\[(.+?)\]", r"${\1}", source)
    return source

t = Template("""

BAR='hi'
BAT='^[hoho]'
PATH='/path/to/crap'

EXECUTABLE=${PATH}/${BAR}/${BAT}

""", preprocessor=bash_preprocessor)


print t.render(hoho="boo")