2017-04-27 63 views
0

我正在建立一個流浪項目,這將提供(我用這個詞是嗎?)一個具有自定義地圖的Minecraft服務器。在提供過程中,我不斷收到sed錯誤sed: -e expression #1, char 39: unknown option to 's',但如果手動執行sed命令,我沒有發生同樣的錯誤。我的代碼有什麼問題?sed錯誤的流浪漢提供,但在手動執行可以

Vagrantfile:

$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 

server.properties:

#Minecraft server properties 
resource-pack= 
+1

@Sundeep thx的意見,我正在努力最小化代碼 – Hartman

回答

0

經過一些調查研究,我發現,https://協議頭莫名其妙的干擾原有的sed腳本,甚至我躲過了斜槓。所以我將sed分隔符從正斜槓改爲解決問題的美元符號。現在sed命令成爲:

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