在加壳器中,如何在不调用函数的情况下在字符串中添加文字大括号 {{}}?
In packer, how do I add the literal braces {{}} in a string without calling a function?
Ansible 支持 {{CWD}}
宏。
Packer 使用 {{}}
作为函数和变量。
我看不出有什么方法可以转义 {{function_name}}
语法,这样我就可以输入文字 {{CWD}}
。我尝试了很多不同的方法,包括使用 unicode 大括号(没有用),但它们总是无效或试图调用一个不存在的 CWD 函数,这显然会破坏打包程序。
这是我尝试开始工作的字符串示例。
"extra_arguments": [ "--extra-vars", "roles_path={{.CWD}}/temp-roles" ],
我找到了一个 hacky 解决方法。只需获取 shell 提供的 $PWD 变量并将其传入,然后在我使用 CWD 的地方使用它。这并没有回答我的问题,查看它基于的 Go 模板库,我认为不可能逃脱花括号。
"variables": {
"pwd": "{{env `PWD`}}"
},
"extra_arguments": [ "--extra-vars", "roles_path={{user `pwd`}}/temp-roles" ],
我相当确定这对于 packer 在后台使用的 go 模板引擎是不可能的。我已经和他们开了一张票,但由于他们正试图转移到 HCL,我不知道这是否会得到解决。
Ansible 支持 {{CWD}}
宏。
Packer 使用 {{}}
作为函数和变量。
我看不出有什么方法可以转义 {{function_name}}
语法,这样我就可以输入文字 {{CWD}}
。我尝试了很多不同的方法,包括使用 unicode 大括号(没有用),但它们总是无效或试图调用一个不存在的 CWD 函数,这显然会破坏打包程序。
这是我尝试开始工作的字符串示例。
"extra_arguments": [ "--extra-vars", "roles_path={{.CWD}}/temp-roles" ],
我找到了一个 hacky 解决方法。只需获取 shell 提供的 $PWD 变量并将其传入,然后在我使用 CWD 的地方使用它。这并没有回答我的问题,查看它基于的 Go 模板库,我认为不可能逃脱花括号。
"variables": {
"pwd": "{{env `PWD`}}"
},
"extra_arguments": [ "--extra-vars", "roles_path={{user `pwd`}}/temp-roles" ],
我相当确定这对于 packer 在后台使用的 go 模板引擎是不可能的。我已经和他们开了一张票,但由于他们正试图转移到 HCL,我不知道这是否会得到解决。