我想在我的Vagrantfile中传递当前用户,但我不知道该怎么做。
我试过这个:
config.vm.provision :shell, inline: "echo $(whoami) > /etc/profile.d/me"
但这会导致"root"被放入文件中,我假设它是流浪主机的用户。我想获取主机的用户名。
这是因为您的内联 shell 脚本在 vagrant box 内运行。
你可以这样做:
根据平台从主机获取用户名(如果您从不希望使用 Windows 主机,则可以简化此操作)。
@host_user = Gem.win_platform? ? "#{ENV['USERNAME']}" : "#{ENV['USER']}"
在置备期间将主机中的用户名作为环境变量传递,并在内联脚本中使用它。
config.vm.provision "Passing host username as env var...", type: :shell, inline: $hostUser, env: {"HOST_USER" => "#{@host_user}"}
在 ruby 部分之外添加它,然后它由上面的代码运行,并将作为环境变量传递的用户名附加到您指定的文件中:
$hostUser = <<-SET_HOST_USER
echo "$HOST_USER" > /etc/profile.d/me"
SET_HOST_USER