![](/img/trans.png)
[英]How to Split the AWS OpsWork output string in Chef .erb file.?
[英]how to use erb to output file after binding
我得到了以下示例:
require 'erb'
names = []
names.push( { 'first' => "Jack", 'last' => "Herrington" } )
names.push( { 'first' => "LoriLi", 'last' => "Herrington" } )
names.push( { 'first' => "Megan", 'last' => "Herrington" } )
myname = "John Smith"
File.open( ARGV[0] ) { |fh|
erb = ERB.new( fh.read )
print erb.result( binding )
伴随着
text.txt
<% name = "Jack" %>
Hello <%= name %>
<% names.each { |name| %>
Hello <%= name[ 'first' ] %> <%= name[ 'last' ] %>
<% } %>
hi, my name is <%= myname %>
}
它可以很好地打印到屏幕上。
输出到另一个文件的最简单方法是什么:“text2.txt”而不是屏幕?
我知道这对于你们大多数经验丰富的红宝石大师来说真的是小菜一碟,但是对于那些刚从新手那里拿到初学红宝石的人来说......现在很有挑战性...但我想把代码用于现实生活。 ..
谢谢!!!
请注意,ERB不打印这个 - 你是。
print erb.result( binding )
让我们改变这一点。 我们将打开文件句柄,在w
模式下写入,并将ERB结果写入文件。
File.open('text2.txt', 'w') do |f|
f.write erb.result(binding)
end
File.open('text2.txt', 'w')
以w
rite模式打开文件text2.txt
,并将该文件对象传递到块中。 f.write
其参数输出到文件中。 在某些情况下,您可能需要调用f.close
以允许计算机上的其他进程访问该文件,但由于我们在此处使用了块表示法,因此文件在块结束时自动关闭。
代码未经测试 - 如果您收到错误,请告诉我。 祝您的编码旅程顺利!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.