在chef中使用`ruby_block`中的`$`字符

时间:2015-09-29 10:03:05

标签: ruby chef

我想在ruby_block的配方中使用以下代码,但由于'$',它无效。代码找不到$NAME,但可以找到NAME。你能给我一个解决方案吗?

file.search_file_replace_line("DEFAULT=/etc/default/$NAME","DEFAULT=/etc/default/tomcat7")

1 个答案:

答案 0 :(得分:2)

search_file_replace_line期望正则表达式成为第一个参数。而美元符号是正则表达式中的特殊符号,它基本上就意味着行尾。所以,如果你真的想用它替换它,你必须正确地逃避它。

这将完成这项工作:

file.search_file_replace_line("DEFAULT=/etc/default/\\$NAME","DEFAULT=/etc/default/tomcat7")