如果在一行中定义了另一个变量,如何设置变量?

How to set variable if another variable defined in one line?

我正在使用此代码设置变量,然后检查此变量是否为 1:

{% if pillar['setup_user'] is defined %}
{% set var_setup_user = pillar['setup_user'] %}
{% else %}
{% set var_setup_user = 1 %}
{% endif %}

{% if var_setup_user == 1 %}
setup-user:
  cmd.run:
    - name: |
        ...

    - shell: /bin/bash
    - user: root
{% endif %}

有没有办法在一行或两行中检查这个?

谢谢

普通的三元运算符行得通吗?

{% set var_setup_user = pillar['setup_user'] if pillar['setup_user'] is defined else 1 %}
{% set var_setup_user = pillar['setup_user']|d(1) %}

ddefault 过滤器的别名。