我有两个变量:a
,b
。
我想根据以下内容为变量c
赋值:a
或b
包含更大的数值。
这就是我试过的:
- set_fact:
c: "test1"
when: a <= b
- set_fact:
c: "test2"
when: b <= a
看起来总是将c
设置为test1
而不是test2
。
if-else
表达式:
- set_fact:
c: "{{ 'test1' if (a >= b) else 'test2' }}"
- set_fact:
c: "{{ (a >= b) | ternary ('test1', 'test2') }}"
上述方法中的任何一种都要求两个用于比较的变量具有相同的类型以给出合理的结果。对于数值比较,它们要求两个值都是整数。
问题的代码:
- set_fact:
c: "test1"
when: a <= b
- set_fact:
c: "test2"
when: b <= a
在两种情况下正常工作:
a
和b
是整数a
和b
是包含具有相同位数的数值的字符串然而它产生意想不到的结果是: