什么“<

问题描述 投票:28回答:4

例如:

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

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

ruby
4个回答
37
投票

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

例如,查看更多here

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


2
投票

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

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


2
投票

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

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


-1
投票

您可以在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
© www.soinside.com 2019 - 2024. All rights reserved.