如何生成;for loop";在YAML文件中

如何生成;for loop";在YAML文件中,yaml,Yaml,假设我们有以下YAML a: - s1: p - s2: p - s3: p - s4: p 是否有使用for循环生成此YAML文件的语法 比如: 编写脚本是实现这一点的一种方法。这是否可行 YAML是一种人类可读的数据序列化语言。通常 用于配置文件,但可用于许多应用程序 存储或传输数据的位置 维基百科 在它上面循环是一个非常容易的任务,你可以用任何编程语言来实现 例如,您可以在bash中执行以下操作: enum="s1 s2 s3 s4" cat <<EOF&g

假设我们有以下YAML

a:
  - s1: p
  - s2: p
  - s3: p
  - s4: p
是否有使用for循环生成此YAML文件的语法

比如:

编写脚本是实现这一点的一种方法。这是否可行

YAML是一种人类可读的数据序列化语言。通常 用于配置文件,但可用于许多应用程序 存储或传输数据的位置

维基百科

在它上面循环是一个非常容易的任务,你可以用任何编程语言来实现

例如,您可以在bash中执行以下操作:

enum="s1 s2 s3 s4"

cat <<EOF> test.yml
a:
`for t in $enum; do echo "  -${t}:p"; done`
EOF
enum=“s1 s2 s3 s4”

cat没有办法按照您计划的方式缩短YAML文件


解决方案应该是一个脚本,它解释文件并以您喜欢的方式将其缩短,这只能用于可读性。

我相信您正在azure devops中尝试类似yaml模板的内容: 尝试以下方法:

${{each img in parameters.images}}:
      ${{img.key}}:

但在我的例子中,以这种方式生成的yaml将变得非常长,并失去可读性。我认为用这种方法缩短yaml是一种方法。我明白你的意思。不幸的是,YAML并没有做到这一点。您应该找到一个替代解决方案,例如生成
产品
YAML的模板。YAML中没有任何东西可以做到这一点,但有许多程序使用一些模板系统(例如
jinja2
)扩展到YAML。因此,您应该为正在使用的编程语言研究一个模板系统。顺便说一句,如果您选择代码块并按Ctrl+K缩进整个代码块,而不是在代码块周围加上反引号,则代码块/YAML的外观会更好(对于内联代码块,这些代码块更好)
${{each img in parameters.images}}:
      ${{img.key}}: