2016-04-29 12 views
0

Und so habe ich einen Vagrantfile mit Code:vagrant Bestimmung: Leseleitung von der Tastatur/stdin

VAGRANTFILE_API_VERSION = "2" 
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
... 
    config.vm.provision "shell", inline: 'echo "Read line:" && read t && echo "$t"' 
... 
end 

und wenn ich vagrant provision ausführen ich habe, dass die Ausgabe:

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

, die nicht vorschlagen ist Geben Sie eine Zeile von der Tastatur/stdin ein!

Was sollte ich tun, um Zeile von Tastatur/Stdin während Provisionsshellskriptausführung zu lesen?

Antwort

1

ich es auf diese Weise zu tun, in meinem Vagrantfile

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

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

Ja, es Lösung von meinem Beispiel ist 'echo "Lese Zeile:" && t lesen && echo "$ t"'. Aber ich brauche eine allgemeinere Lösung. ** Wie mache ich es, wenn in meinem Provisionsshellskript Befehl verwendet wird, der Tastatureingaben direkt benötigt? ** – Meatbot

+0

Soweit ich es zuletzt gesehen habe, war es nicht möglich ([Referenz] (http: //vagrant.1086180.n5.nabble .com/bootstrap-sh-pause-für-input-nach-jedem-Befehl-td1399.html)) und so habe ich diesen Weg verwendet - könnte sich geändert haben, aber ich bezweifle, Bereitstellung vagabundierendes Ziel ist wirklich zu 100% Automatisch, in Ihrem Fall möglicherweise nicht perfekt, aber Sie könnten Workaround mit dem Beispiel, das ich gab –

+0

Danke für die Antwort. Ich habe deine Referenz gelesen. Und ich werde deinen Weg benutzen. – Meatbot

Verwandte Themen