2017-10-09 8 views

回答

1

我想运行如果变量包含字符串值,则传递前置任务;如果包含其他任何内容,则失败。

- fail: 
    when: variable is not string 

但要注意,作为额外瓦尔通过了所有的值将是字符串,因为这是它们是什么 - 任何你输入:如果variable不是字符串对象

此任务将失败在你的键盘上是一个有效的字符串。由于没有类型声明,即使变量包含一个数值,它也会存储在一个字符串对象中。

这与YAML中定义的变量值不同,后者通过YAML解析器执行类型自动检测。例如,如果在YAML中键入myvar: true,它将被视为布尔对象true,但是如果您通过与--extra-vars "myvar:true"相同的值,它将是一个字符串对象true

您需要指定其他条件。

+0

太好了。工作得很好。 另外,我通过从json文件加载extra_args,该文件将数字值作为数字本身而不是字符串对象。 –

+0

只是为了确保每次都不失败。 – techraf

+0

已检查。每次都不会失败。 –

相关问题