检查人偶模板中的变量是否为undef的正确方法是什么?
在 list 中,变量定义如下
$myvar = undef
如何在模板中检查?
看了以下两个变种
<% if @myvar -%>
<% end -%>
和
<% if not @myvar.nil? and @myvar -%>
<% end -%>
在我的情况下,它们似乎都适用,但是我想知道在某些情况下第一种方法是否会失败?
最佳答案
Puppet文档(在编写此答案时)对其进行了很好的解释:https://puppet.com/docs/puppet/latest/lang_template_erb.html#concept-5365
由于undef
与false
不同,因此仅使用if
并不是检查它的好方法。同样,当定义了变量但其值为false
或nil
时,也无法使用简单的if
进行检查。
这就是为什么要使用scope.lookupvar(‘variable’)
并检查:undef
或:undefined
(或nil
)的返回值以了解是否将其设置为undef
或根本不设置的原因。
关于erb - 检查 puppet 模板中的变量是否为undef,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17096934/