“<< – ”在Ruby中意味着什么?

例如:

code = <<-EOH bundle install bundle exec unicorn -c /etc/unicorn.cfg -D EOH 

这段代码有什么作用? 什么是<<-叫?

它被称为heredoc。 一种简单的方法来定义多行字符串,可以包括单引号或双引号,而无需转义它们。

例如,在这里查看更多。

通常使用heredocs来定义大块代码。 一些编辑知道这一点,并可以在那里突出显示语法(如果您指定语言)。 看:

字符串与heredocs

看起来像heredoc。 -允许结束分隔符忽略它之前的空格。

一个简单的谷歌搜索给了我这个 。

Ruby <<~END还有一个更新的HEREDOC语法,它更像你在大多数shell和其他语言中通常会看到的~而不是-告诉Ruby剥离前导空格以匹配最小的缩进行。块。

https://infinum.co/the-capsized-eight/multiline-strings-ruby-2-3-0-the-squiggly-heredoc

您可以在Chef Recipe中的一个块中传递多个命令

  bash 'Install ftppwd' do code <<-EOH mkdir #{ftppwd_dir} chmod 775 #{ftppwd_dir} chgrp #{batch_id} #{ftppwd_dir}/* chown #{batch_id} #{ftppwd_dir}/* EOH