2016-04-29 80 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