2011-09-05 80 views
0

我要運行的命令:從腳本與互動節目溝通?

svn ls --username xxx 

。它請求密碼,所以我必須將密碼傳遞給它。我如何在Ruby中做到這一點?

回答

0

你應該能夠做一些事情,如:

require 'open3' 

username = "xxx" 
password = "xxx" 

Open3.popen3("svn ls --username #{username}") do |stdin, stdout, stderr| 
    stdin.puts(password) 
    stdin.close 
end 

這都直了我的頭,我沒有測試過,所以它可能會以可怕的方式破裂。 ;)

+0

你的腳本沒有顯示它的工作原理。我在「stdin.close」之後添加了一行「puts stdout.getc」。現在腳本停止提示密碼。看來svn爲密碼提示創建了新的tty,所以stdin.puts不能工作 – krvladislav

+0

嘗試在'stdin.close'之前放置'puts stdout.gets' – netmute

+0

沒有什麼改變 – krvladislav