YAML 模板系统 - 如何基于 env 变量确定变量包含的内容

问题描述 投票:0回答:1

我希望通过 env 变量(字符串)varb_letter 将从我的元数据中获取不同的数据。

这是我尝试做的。

你能帮忙吗?

谢谢!!!

varb_letter: (( env("LANDSCAPE") == 'a' ? asjson(.metadata.a) : env("LANDSCAPE") == 'b' ? asjson(.metadata.b) : env("LANDSCAPE") == 'c' ? asjson(.metadata.c) ))

metadata:
  a:
  b:
  c:

env变量控制变量数据, 我收到错误的语法错误

yaml system templating
1个回答
0
投票

对于这个答案,我假设您使用 Spiff++ 作为模板引擎。

有几个问题:

  • a
    这样的字符串常量需要用双引号括起来,而不是单引号,所以正确的语法是
    env("LANDSCAPE") == "a"
  • else值必须在
    :
    之后直接输入,中间不能有空格(因为这与默认的yaml语法冲突。所以正确的语法例如,第二个条件是
    :env("LANDSCAPE") == "b"
  • 你总是需要一个 else 子句,也用于最终条件
  • 元数据需要填写

MCVE:

varb_letter: (( env("LANDSCAPE") == "a" ? asjson(.metadata.a) :env("LANDSCAPE") == "b" ? asjson(.metadata.b) :env("LANDSCAPE") == "c" ? asjson(.metadata.c) :false ))

metadata:
  a: 1
  b: 2
  c: 3
© www.soinside.com 2019 - 2024. All rights reserved.