游荡规定中的sed错误,但手动执行时正常

游荡规定中的sed错误,但手动执行时正常,sed,vagrantfile,vagrant-provision,Sed,Vagrantfile,Vagrant Provision,我正在建立一个流浪者项目,它将提供(我用这个词对吗?)一个带有自定义地图的Minecraft服务器。在提供过程中,我不断得到sed errorsed:-e expression#1,char 39:unknown option to's',但如果我手动执行sed命令,我不会出现相同的错误。我的代码怎么了 流浪汉档案: $map_install = <<INLINE_SCRIPT cd /home/vagrant cp /vagrant/min.config /home/vagrant

我正在建立一个流浪者项目,它将提供(我用这个词对吗?)一个带有自定义地图的Minecraft服务器。在提供过程中,我不断得到sed error
sed:-e expression#1,char 39:unknown option to's'
,但如果我手动执行sed命令,我不会出现相同的错误。我的代码怎么了

流浪汉档案:

$map_install = <<INLINE_SCRIPT
cd /home/vagrant
cp /vagrant/min.config /home/vagrant/server.properties
sed -i 's/resource-pack=/resource-pack=https:\/\/example.com\/resources.zip/g' server.properties
INLINE_SCRIPT

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.provision "shell", inline: $map_install, privileged: false
end

经过进一步的研究,我发现
https://
协议头在某种程度上干扰了原始sed脚本,即使我躲过了前斜杠。因此,我将sed分隔符从前斜杠改为美元符号,解决了这个问题。现在sed命令变成:

sed -i 's$resource-pack=$resource-pack=https://example.com/resources.zip$g' server.properties

@Sundeep thx作为建议,我正在努力最小化代码
sed -i 's$resource-pack=$resource-pack=https://example.com/resources.zip$g' server.properties