Jinja2模板 - 比较字符串

时间:2017-05-30 02:40:58

标签: python ansible jinja2

"{{ 'a+rwx' if '{{ item }}' == '{{ airflow_dag_folder }}' else 'u+rwx,g+rx,o+rx' }}"

这是我想要比较的,但它总是返回u + rwx,g + rx,o + rx。希望它在匹配时返回+ rwx,但即使item与airflow_dag_folder相同,它也不会返回正确的内容。

1 个答案:

答案 0 :(得分:2)

您正在使用Jinja2表达式。 Jinja2表达式中的变量由它们的名称引用(并且没有引号)。

在表达式中,您将字符串{{ item }}与字符串{{ airflow_dag_folder }}进行比较。这两个字符串不相等,因此您始终可以获得else语句中定义的值。

改为使用:

"{{ 'a+rwx' if item == airflow_dag_folder else 'u+rwx,g+rx,o+rx' }}"