我在Windows机器上运行Ruby和MySQL.
我有一些需要连接MySQL数据库的Ruby代码执行select.要连接到数据库,我需要提供密码等.
Ruby代码可以显示请求密码的提示,用户输入密码并按Enter键.我需要的是密码,因为它是键入的,显示为一行星号.
如何让Ruby在'dos box'中将键入的密码显示为一行星号?
要回答我自己的问题,并且为了其他任何想知道的人的利益,你需要一个名为HighLine的Ruby宝石.
require 'rubygems' require 'highline/import' def get_password(prompt="Enter Password") ask(prompt) {|q| q.echo = false} end thePassword = get_password()
穷人的解决方案:
system "stty -echo" # read password system "stty echo"
或者使用http://raa.ruby-lang.org/project/ruby-password/
此库的目标受众是需要编写提示,生成,验证和加密密码的Ruby程序的系统管理员.
编辑:哎呀我没注意到你需要这个Windows :(
根据Highline文档,这似乎有效.不确定它是否适用于Windows.
#!/usr/local/bin/ruby require 'rubygems' require 'highline/import' username = ask("Enter your username: ") { |q| q.echo = true } password = ask("Enter your password: ") { |q| q.echo = "*" }
这是控制台上的输出:
$ ruby highline.rb Enter your username: doug Enter your password: ******