以下代码示例纯粹是学术性的,但它很好地说明了我的问题。
define touch($file=$title, $unless='/bin/false') {
exec { "/bin/touch ${file}": unless => $unless }
}
如果我定义了自己的资源类型包装另一个 exec 资源,我想添加一个可选的“除非”条件,我 - 如果设置 - 传递给可选“除非” exec 的条件 - 我是否必须使用'/ bin / false'预设字段?
我的理解是,对于每个目录运行以及此自定义资源的所有使用类型此资源,除非检查将生成运行'/ bin / false'的bash进程,如果尚未设置“touch”的除非字段。
我实际打算不做任何“除非”检查,如果该字段尚未设置 - 包括调用“/ bin / false”。
有什么想法?谢谢!
答案 0 :(得分:5)
使用undef而不是'/ bin / false',除非只有在设置时才会运行:
define touch($file=$title, $unless=undef) {
exec { "/bin/touch ${file}": unless => $unless }
}