Puppet

帶有函式呼叫和變數作為參數的木偶字元串插值

  • April 11, 2018

試圖構造一個字元串。

我可以:

"Blah blah ${::osfamily} blah blah"

"Blah blah ${$::osfamily} blah blah"

但是使用變數作為參數呼叫函式並進行字元串插值工作的語法是什麼?

以下方法均無效:

"Blah blah ${downcase($::osfamily)} blah blah"

"Blah blah ${downcase($osfamily)} blah blah"

"Blah blah ${downcase(::osfamily)} blah blah"

"Blah blah ${$downcase(osfamily)} blah blah"

"Blah blah ${$downcase($osfamily)} blah blah" 等等。

我得到的是: Error 400 on SERVER: Syntax error at '('; expected ')'

這在 Puppet 語言中是否可行?

這是不可能的。Puppet 的語言有點異想天開,因為很多你認為會起作用的東西只是……不要。您需要將函式的返回值分配給一個變數,然後將該變數插入到字元串中,如下所示:

$downcased_osfamily = downcase($::osfamily)
"Blah blah ${downcased_osfamily} blah blah"

當然,字元串本身沒有任何用處,所以大概您將該字元串分配給它自己的變數,或者將其用作資源屬性的值。

引用自:https://serverfault.com/questions/725662