Vagrant 如何将主机环境变量传递给配置脚本

Vagrant 如何将主机环境变量传递给配置脚本,vagrant,vagrant-provision,Vagrant,Vagrant Provision,我的文件中有以下行: config.vm.provision :shell, path: "provisioning/myscript.sh" 我想根据主机中设置的环境变量(可能不存在)切换运行该脚本。如果值存在并且等于true我希望跳过脚本,否则它应该运行,例如 if [ ENV[SKIP_MY_SCRIPT] != 'true' ] config.vm.provision :shell, path: "provisioning/myscript.sh" end 或者有没有更好的方法(

我的文件中有以下行:

config.vm.provision :shell, path: "provisioning/myscript.sh"
我想根据主机中设置的环境变量(可能不存在)切换运行该脚本。如果值存在并且等于
true
我希望跳过脚本,否则它应该运行,例如

if [ ENV[SKIP_MY_SCRIPT] != 'true' ]
  config.vm.provision :shell, path: "provisioning/myscript.sh"
end

或者有没有更好的方法(例如,以某种方式将env传递到脚本中)?

由于Vagrantfile主要是一个ruby脚本,因此在文件中使用条件语句也不错

要回答如何将主机环境变量传递给配置脚本的特定问题(可以帮助其他用例),可以传递如下参数

  username = `whoami`.chomp
  config.vm.provision "shell", privileged: false, path: "provisioning/config-git.sh", args: "#{username}"
在你的剧本中,你读作

#!/usr/bin/env bash 
username=$1