0

我在 Puppet ERB 模板中有以下代码:

<% if @server.class == Array -%>
<% @server.each do |server| -%>
server   <%= server %>
restrict <%= server %>  <%= @restrict[1] %>
<% end %>
<% end -%>

在配置文件中,由于 IP 地址的字符数不同,我没有得到对齐的输出:

server   123.123.1.1
restrict 123.123.1.1  mask 255.255.255.224 nomodify notrap noquery
server   123.123.345.33
restrict 123.123.345.33  mask 255.255.255.224 nomodify notrap noquery
server   123.123.345.33
restrict 123.123.345.33  mask 255.255.255.224 nomodify notrap noquery

可以看出,掩模线没有与其他掩模线对齐。

我怎样才能对齐它们?

4

1 回答 1

0

您可以在 ERB 模板内的 Ruby 代码中执行任何您可以执行的操作,这样就可以了:

<% if @server.class == Array -%>
<% @server.each do |server| -%>
server   <%= "%-14s" % server %>
restrict <%= "%-14s" % server %>  <%= @restrict[1] %>
<% end %>
<% end -%>

即您可以在Ruby 中格式化字符串,类似于其他语言。Ruby 文档在这里

于 2018-07-04T14:25:19.623 回答