我正在尝试使用Chef启动一个名称中包含美元字符串的服务,但我不能。刺痛在一个变量里面,我不知道如何逃脱美元符号(如果它只是一个字符串我会的)
我查看过有关逐字字符串和插值的信息,但我无法弄清楚
该块将是:
code <<-EOH
sc config #{node.recipe_name.serviceName} depend= OtherService
EOH
服务名称类似于Application.Instance $ ABC
不知何故,当从Chef调用配方时,$ ABC部分总是消失,无法启动服务。
答案 0 :(得分:2)
尝试使用Shellwords.shellescape
(或其别名Shellwords.escape
)来转义字符串:
code <<-EOH
sc config #{Shellwords.escape(node['recipe_name']['serviceName'])} depend= OtherService
EOH