2016-04-29 75 views
0

所以,我有一个Vagrantfile与代码:流浪汉规定:从键盘读取线/标准输入

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我有输出:

$ vagrant provision 
... 
==> default: Running provisioner: shell... 
    default: Running: inline script 
==> default: Read line: 
==> default: exit 

就是没有提示从键盘/标准输入中输入一行!

在提供shell脚本执行期间,我应该如何从键盘/标准输入读取行?

回答

1

我做这种方式,在我Vagrantfile

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

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

是的,这是我的榜样的解决方案'回声 “读行:” &&读牛逼&&回声 “$ T”'。 但我需要更多的通用解决方案。 **如何在我的供应shell脚本中使用直接需要键盘输入的命令?** – Meatbot

+0

据我最后一次看到,这是不可能的([参考](http://vagrant.1086180.n5.nabble .com/bootstrap-sh-pause-for-input-after-each-command-td1399.html)),所以我一直在用这种方式 - 可能已经改变了,但我怀疑,提供流浪目标真的是100%自动,在你的情况可能不是完美的,但你可以解决我给的例子 –

+0

感谢您的回答。我读过你的参考资料。我会用你的方式。 – Meatbot