我想在Vagrantfile中传递当前用户,但是我不确定该怎么做。
我已经尝试过了:
config.vm.provision :shell, inline: "echo $(whoami) > /etc/profile.d/me"
但是它导致将“ root”放入文件中,我认为这是无所事事的主机的用户。我想获取主机的用户名。
答案 0 :(得分:1)
那是因为您的嵌入式shell脚本在无业游民的框中运行。
您可以这样做:
根据平台从主机获取用户名(如果您从不希望使用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