Vagrant 流浪者条款:从键盘/stdin读取行

Vagrant 流浪者条款:从键盘/stdin读取行,vagrant,vagrantfile,vagrant-provision,Vagrant,Vagrantfile,Vagrant Provision,因此,我有一个带有代码的文件: VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| ... config.vm.provision "shell", inline: 'echo "Read line:" && read t && echo "$t"' ... end 当我执行《流浪规定》时,我得到了以下输出: $ vagrant provis

因此,我有一个带有代码的文件:

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
...
  config.vm.provision "shell", inline: 'echo "Read line:" && read t && echo "$t"'
...
end
当我执行《流浪规定》时,我得到了以下输出:

$ vagrant provision
...
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: Read line:
==> default: exit
不建议从键盘/stdin输入一行


在provision shell脚本执行期间,我应该如何从键盘/stdin读取行?

我是这样做的,在我的文件中

puts "Input text: "
input = STDIN.gets.chomp

config.vm.provision :shell, inline: "echo #{input}"

我是这样做的,在我的档案里

puts "Input text: "
input = STDIN.gets.chomp

config.vm.provision :shell, inline: "echo #{input}"

是的,这是我的示例
echo“Read line:&&Read t&&echo“$t”
的解决方案。但我需要更一般的解决方案。如果在我的provision shell脚本中使用了需要直接键盘输入的命令,该怎么办?就我上次所见,这是不可能的(),所以我一直使用这种方式-可能已经改变了,但我怀疑,provisioning vagrant的目标真的是100%自动,在你的情况下,可能并不完美,但你可以用我所举的例子来解决这个问题。我已经看过你的推荐信了。我会用你的方式。嗨。我用你的方式。它起作用了!但是现在,
vagrant destroy
所需的键盘输入:)这对我有帮助,但我希望用户输入的内容不会在输入时显示出来,这对密码提示很有用
pass=STDIN.noecho(&:get)
Yes,这是我的示例的解决方案
echo“Read line:&&readt&&echo”$t
。但我需要更一般的解决方案。如果在我的provision shell脚本中使用了需要直接键盘输入的命令,该怎么办?就我上次所见,这是不可能的(),所以我一直使用这种方式-可能已经改变了,但我怀疑,provisioning vagrant的目标真的是100%自动,在你的情况下,可能并不完美,但你可以用我所举的例子来解决这个问题。我已经看过你的推荐信了。我会用你的方式。嗨。我用你的方式。它起作用了!但是现在,
vagrant destroy
所需的键盘输入:)这对我有帮助,但我希望用户输入的内容不会在输入时显示出来,这对密码提示很有用
pass=STDIN.noecho(&:get)