Ruby 与交互式程序通信?

Ruby 与交互式程序通信?,ruby,Ruby,我要运行以下命令: svn ls --username xxx 根据剧本。它需要一个密码,所以我必须将密码传递给它。如何在Ruby中做到这一点?这是一篇关于使用SVN Ruby绑定的优秀文章: 您应该能够执行以下操作: require 'open3' username = "xxx" password = "xxx" Open3.popen3("svn ls --username #{username}") do |stdin, stdout, stderr| stdin.puts(p

我要运行以下命令:

svn ls --username xxx

根据剧本。它需要一个密码,所以我必须将密码传递给它。如何在Ruby中做到这一点?

这是一篇关于使用SVN Ruby绑定的优秀文章:


您应该能够执行以下操作:

require 'open3'

username = "xxx"
password = "xxx"

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

这是我直接想到的,我还没有测试过它,所以它可能会以可怕的方式断裂

你的脚本没有显示它是有效的。我在“stdin.close”之后添加了一行“puts stdout.getc”。现在脚本停止提示密码。svn似乎为密码提示创建了新的tty,因此stdin.put无法工作。请尝试将
put stdout.get
放在
stdin.close