我想使用puppet在文件中添加一些值,但是当我在ruby模板中执行以下操作时:
<% @_zoo_cfgs.each do |zooconfig| -%>
<%=zooconfig -%>
<% end -%>
我在生成的文件中获得以下内容:
server.1=a1-dev-mem333.lab.lynx-connected.com:2888:3888(trailing whitespace)
但我想要以下内容:
server.1=a1-dev-mem333.lab.lynx-connected.com:2888:3888(no trailing whitespace)
在值之前或之后文件中没有额外的空格。谁能告诉我怎么能这样做呢?
答案 0 :(得分:4)
当您使用-%>
关闭ERB代码时,将禁止在结束标记后面的任何换行符 。但是,如果下一个字符是其他任何字符,例如空格字符,则没有抑制。在您的情况下可能更重要的是,在任何情况下都不会抑制模板的以下行中的前导空格。
至少有两种方法可以处理这种情况。
<% @_zoo_cfgs.each do |zooconfig| -%>
<%=zooconfig -%>
<% end -%>
<%# assumes that @_zoo_cfgs is an array: -%>
<%= @_zoo_cfgs.join("\n") -%>
答案 1 :(得分:0)
如果空格是变量值的一部分,请使用Ruby字符串函数去掉它,例如。
<%= zooconfig.rstrip %>