我有两个变量:a,b.
我想c根据以下内容为变量赋值:a或b包含更大的数值.
这就是我试过的:
- set_fact:
c: "test1"
when: a <= b
- set_fact:
c: "test2"
when: b <= a
Run Code Online (Sandbox Code Playgroud)
像它总是将c到test1没有test2.
tec*_*raf 13
使用if-else表达式:
- set_fact:
c: "{{ 'test1' if (a >= b) else 'test2' }}"
Run Code Online (Sandbox Code Playgroud)使用三元运算符:
- set_fact:
c: "{{ (a >= b) | ternary ('test1', 'test2') }}"
Run Code Online (Sandbox Code Playgroud)使用您自己的代码是正确的(请参阅下面的通知)
上述方法中的任何一种都要求两个用于比较的变量具有相同的类型以给出合理的结果.对于数值比较,它们要求两个值都是整数.
问题的代码:
- set_fact:
c: "test1"
when: a <= b
- set_fact:
c: "test2"
when: b <= a
Run Code Online (Sandbox Code Playgroud)
在两种情况下正常工作:
a和b是整数a和b包含具有相同位数的数值的字符串然而它产生意想不到的结果是:
| 归档时间: |
|
| 查看次数: |
11236 次 |
| 最近记录: |