我有一个变量,它存储任务运行中的2个值
- name: Set result
set_fact:
xresult: "{{ xresult | default([]) + [ yresult ] }}"
打印有调试,它显示如下:
[u'abc', u'def']
我正在尝试在jinja2模板中显示输出,如下所示:
{% for x in xresult %}
First run result: {{ x[0] }}
Second run result:{{ x[1] }}
{% endfor %}
输出应如下所示:
First run result: abc
Second run result: def
答案 0 :(得分:1)
下面的戏
- hosts: localhost
vars:
xresult:
- abc
- def
tasks:
- set_fact:
output: |
{% for i in range(0, xresult|count, 2) %}
First run result: {{ xresult[i] }}
Second run result: {{ xresult[i+1] }}
{% endfor %}
- debug:
msg: "{{ output.split('\n') }}"
给予
"msg": [
"First run result: abc",
"Second run result: def",
""
]
答案 1 :(得分:0)
这实际上只会显示以下值。
First run result: a
Second run result: b
First run result: d
Second run result: e
因为您使用的是x [0],所以第一次迭代的值将为x = abc,而您将其用作x [0],即x [abc]实际上是a。
您需要限制运行并直接访问值,因此需要添加一些逻辑条件才能实现。
希望如此就可以清除了,只需在模板中进行处理即可。