ruby 在一个流浪虚拟机供应中攻击heredoc heredoc

l0oc07j2  于 2023-02-03  发布在  Ruby
关注(0)|答案(2)|浏览(128)

我喜欢在config.vm.provision中的ruby heredoc中使用bash heredoc,如下所示:

config.vm.provision "shell", inline: <<-SHELL
    cat >> foobar <<EOF
    bla bla
    foo foo
EOF
echo 'some other command'
SHELL

但是当执行privision文件时,到provision末尾的所有内容都以foobar结束,我怀疑这里需要一些转义。

r6hnlfcb

r6hnlfcb1#

为什么你坚持嵌套的heredocs?什么是错的:

config.vm.provision "shell", inline: %q|
    cat >> foobar <<EOF
    bla bla
    foo foo
EOF
echo 'some other command'
|
9jyewag0

9jyewag02#

你必须小心缩进。这是你的代码的修订版本,它按你的意图工作。

Vagrant.configure("2") do |config|
  {{...}}
  config.vm.provision "shell", inline: <<-'SHELL'
    cat >> foobar <<EOF
bla bla
foo foo
EOF
    echo 'some other command'
  SHELL
end

相关问题