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