2011-09-05 68 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