Ansible技术问询:如何在Jinja模板中传递"{{ABC}}"作为字符串
解决Jinja模板中输出
{{ABC}}原字符串的问题 嘿,这个坑我之前踩过!Jinja默认会把{{ }}识别为变量解析标记,要让它原封不动输出"{{ABC}}"这个精确字符串,有几个实用的办法:
使用
raw代码块(最推荐)
把你不想被Jinja解析的内容包裹在{% raw %}和{% endraw %}之间,这样模板引擎会直接忽略内部的所有模板语法,原样输出:mockString= "{% raw %}{{ABC}}{% endraw %}"渲染后就会得到你想要的:
mockString= "{{ABC}}"。这种方式适合处理任意长度的模板语法内容,非常直观。手动转义模板标记
如果你只是需要输出单个{{或}},可以通过Jinja的字符串输出语法来实现:mockString= "{{ '{{' }}ABC{{ '}}' }}"这里
{{ '{{' }}会被渲染成{{,{{ '}}' }}会被渲染成}},最终组合起来就是你要的完整字符串。通过变量存储字面量
先把{{ABC}}作为字符串变量定义好,再输出这个变量:{% set literal_str = "{{ABC}}" %} mockString= "{{ literal_str }}"这种方式适合需要重复使用这个字面量的场景,定义一次后可以多次调用。
亲测这几种方法都能完美满足你的需求,根据自己的使用场景选就行~
内容的提问来源于stack exchange,提问作者firasKoubaa
相关产品推荐
相关产品推荐

