由于美元符号,无法获得厨师服务

时间:2017-10-05 17:31:43

标签: ruby chef

我正在尝试使用Chef启动一个名称中包含美元字符串的服务,但我不能。刺痛在一个变量里面,我不知道如何逃脱美元符号(如果它只是一个字符串我会的)

我查看过有关逐字字符串和插值的信息,但我无法弄清楚

该块将是:

code <<-EOH
sc config #{node.recipe_name.serviceName} depend= OtherService
EOH

服务名称类似于Application.Instance $ ABC

不知何故,当从Chef调用配方时,$ ABC部分总是消失,无法启动服务。

1 个答案:

答案 0 :(得分:2)

尝试使用Shellwords.shellescape(或其别名Shellwords.escape)来转义字符串:

code <<-EOH
sc config #{Shellwords.escape(node['recipe_name']['serviceName'])} depend= OtherService
EOH