首页 > 解决方案 > Vagrant provision sed 命令返回错误

问题描述

我正在尝试运行一个 shellsed命令作为config.vm.provision

  config.vm.provision "shell", inline: <<-SHELL
    systemctl stop firewalld
    systemctl disable firewalld
    swapoff -a
    sed -i '/\/swapfile/s/^/#/g' /etc/fstab
  SHELL

基本上我想要做的是评论/etc/fstab文件中的交换条目。

但我得到一个错误:

    master: Running: inline script
    master: sed: -e expression #1, char 18: unterminated `s' command
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

当我在盒子上运行时,sed 命令运行得非常好,但是当我将它作为我的 Vagrantfile 的一部分提供时出错。

知道为什么会这样吗?

标签: sedvagrantvagrantfile

解决方案


你能试一下吗?

$script = <<-SCRIPT
systemctl stop firewalld
systemctl disable firewalld
swapoff -a
sed -i '/\/swapfile/s/^/#/g' /etc/fstab
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.provision "shell", inline: $script
end

推荐阅读