0

以下代码示例纯粹是学术性的,但它很好地说明了我的问题。

define touch($file=$title, $unless='/bin/false') {
    exec { "/bin/touch ${file}": unless => $unless }
}

如果我定义了自己的资源类型来包装另一个exec资源,并且我想添加一个可选的“除非”条件,我 - 如果设置 - 传递给exec的可选“除非”条件- 我是否必须使用 '/垃圾箱/假'?

我的理解是,对于每个目录运行和此自定义资源类型的所有使用,此资源的除非检查将生成一个运行 '/bin/false' 的 bash 进程,如果 "touch" 的除非字段尚未设置。

如果该字段尚未设置,我实际上打算不做任何“除非”检查 - 包括调用“/bin/false”。

有什么想法吗?谢谢!

4

1 回答 1

5

使用 undef 而不是 '/bin/false',除非只有在设置时才会运行:

define touch($file=$title, $unless=undef) {
    exec { "/bin/touch ${file}": unless => $unless }
}
于 2013-04-10T18:28:59.633 回答