我需要从 ansible 循环中的列表中跳过值 null。我正在使用 when 条件,仍然打印空值。下面是我的剧本:
- hosts: localhost
vars:
show:
- read
- write
- null
- test
val: []
tasks:
- name: Fact
set_fact:
val: "{{val+[item]}}"
loop: "{{show}}"
when: item != "null"
- name: Print
debug:
msg: "{{val}}"
Run Code Online (Sandbox Code Playgroud)
输出:
TASK [Print] ***
ok: [localhost] => {
"msg": [
"read",
"write",
null,
"test"
]
}
Run Code Online (Sandbox Code Playgroud)
请指教。
“表示缺少值。这通常绑定到本机类似空值的值(例如,Perl 中的 undef,Python 中的 None)。......”
关于如何测试null有更多选项。
when: item != None
Run Code Online (Sandbox Code Playgroud)
when: item is not none
Run Code Online (Sandbox Code Playgroud)
when: item|string != 'None'
Run Code Online (Sandbox Code Playgroud)
loop: "{{ show|reject('none')|list }}"
Run Code Online (Sandbox Code Playgroud)