-1

2 つ以上の変数が空かどうかを確認しようとしています。それを達成するために、私は次の方法を見つけました。

if $path {
    if $name {
          notify { "Path : ${path}": }
          notify { "Name : ${name}": }
    }
}

2 つ以上の変数をチェックする必要がある場合、チェックアウトする方法は?

コーディングするための最良の方法を提案してください。

4

1 に答える 1

1

2 つ以上の変数が空かどうかを確認しようとしています。

いくつかの変数のいずれかが空の文字列であるかどうかを判断したいという意味だと思います。この問題を解決するには、新しいreduce()関数を使用できます。

たとえば、これは...

$is_any_empty = reduce([$one, $two, $three], false) |$memo, $entry| {
    $memo or ($entry == '')
}

...変数、、およびの少なくとも 1 つに空の文字列が含まれている場合にのみ、 variable$is_any_emptyを に設定します。true$one$two$three

ただし、あなたの明確化があっても、それはあなたが本当に望んでいるものではないと思います. 私の最善の推測は、変数のセットのすべてが空でない文字列である値を持っているかどうかを実際に判断したいということです(未定義であるか、まったく文字列ではない値を持つのではなく)。この種の型認識チェックは、Puppet 4 の新しい型システムの助けを借りて実行できます。

$all_are_nonempty = reduce([$one, $two, $three], true) |$memo, $entry| {
    $memo and ($entry =~ String[1])
}

variableの値に型があり、少なくとも 1 文字の長さで$entry =~ String[1]あるかどうかを評価するブール式です。スペースのみで構成される文字列に一致することに注意してください。それを望まない場合は、必要な mod は演習として残します。$entryString

于 2015-11-16T19:02:58.880 に答える