我有一个使用 erb 模板的木偶清单。
根据文档,这是正确的语法,并且可以完美运行。
<% if foo != bar %>
derp
<% else %>
herp
<% end %>
Run Code Online (Sandbox Code Playgroud)
如何将 if 语句与“或”运算符结合使用?
以下是我尝试过的以下语法,但它们返回错误:
<% if foo != bar or if slurp != burp %>
derp
<% else %>
herp
<% end %>
Error: Could not run: /etc/puppet/modules/gitlab/templates/gitlab.yml.6-7-stable.erb:275: syntax error, unexpected $end, expecting keyword_end
; _erbout.force_encoding(__ENCODING__)
Run Code Online (Sandbox Code Playgroud)
我尝试将 <% 更改为 <%%,因为puppet 文档中提到了这一点。
<%% if foo != bar or if slurp != burp %%>
derp
<% else %>
herp
<% end %>
Error: Could not run: /etc/puppet/modules/gitlab/templates/gitlab.yml.6-7-stable.erb:241: syntax error, unexpected keyword_else, expecting $end
; else ; _erbout.concat "\n derp "
^
Run Code Online (Sandbox Code Playgroud)
我试过拆分 if-s
<% if foo != bar %> or <% if slurp != burp %>
derp
<% else %>
herp
<% end %>
Error: Could not run: /etc/puppet/modules/gitlab/templates/gitlab.yml.6-7-stable.erb:275: syntax error, unexpected $end, expecting keyword_end
; _erbout.force_encoding(__ENCODING__)
^
Run Code Online (Sandbox Code Playgroud)
有一个额外的if. 正确的语法是:
<% if foo != bar or slurp != burp %>
derp
<% else %>
herp
<% end %>
Run Code Online (Sandbox Code Playgroud)
但是你的那些没有用,因为你的if-else构造是错误的。阅读if-else构造文档。