55

これが私の素朴なアプローチです:

# puppet/init.pp
$x = 'hello ' + 
     'goodbye'

これは動作しません。Puppet で文字列を連結するにどうすればよいですか?

4

6 に答える 6

76

キーワード変数補間:

$value = "${one}${two}"

ソース: http://docs.puppetlabs.com/puppet/4.3/reference/lang_variables.html#interpolation

中括弧がなくても機能する場合がありますが、常に中括弧を使用する必要があることに注意してください。

于 2013-02-15T17:09:33.017 に答える
19

他の回答で言及されていない別のオプションは、その背後にあるRuby 関数と同じように機能するPuppet のsprintf()関数を使用することです。例:

$x = sprintf('hello user %s', 'CoolUser')

パペットで完全に動作することが確認されています。chutzが述べたように、このアプローチは関数の出力を連結するのにも役立ちます。

于 2015-02-24T12:15:05.860 に答える
2

以下は私のために働いた。

puppet apply -e ' $y = "Hello" $z = "world" $x = "$y $z" notify { "$x": } '
notice: Hello world
notice: /Stage[main]//Notify[Hello world]/message: defined 'message' as 'Hello world'
notice: Finished catalog run in 0.04 seconds

以下も同様に機能します。

$abc = "def"

file { "/tmp/$abc":
于 2013-02-15T01:09:11.553 に答える
0

puppetlabs-stdlib の join() 関数を使用できます。そこに文字列連結関数があるはずだと思っていましたが、表示されません。1つ書くのは簡単でしょう。

于 2015-03-27T06:05:08.093 に答える