我在Windows机上运行Ruby和MySQL。
我有一些需要连接到MySQL数据库并执行select的Ruby代码。要连接到数据库,我需要提供密码以及其他信息。
Ruby代码可以显示要求输入密码的提示,用户键入密码并按Enter键。我需要的是将输入的密码显示为一行星号。
如何让Ruby在“dos”框中将键入的密码显示为一行星号?
发布于 2008-09-25 16:19:53
为了回答我自己的问题,并且为了其他想知道的人的利益,有一个叫做HighLine的Ruby gem是你需要的。
require 'rubygems'
require 'highline/import'
def get_password(prompt="Enter Password")
ask(prompt) {|q| q.echo = false}
end
thePassword = get_password()
发布于 2010-04-15 01:52:52
根据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: ******
发布于 2013-09-12 05:35:27
以下代码(lobin.rb)在ruby中运行,而不是在jruby中运行
require 'highline/import'
$userid = ask("Enter your username: ") { |q| q.echo = true }
$passwd = ask("Enter your password: ") { |q| q.echo = "*" }
控制台输出:
E:\Tools>ruby login.rb
Enter your username: username
Enter your password: ********
但是,如果我在jruby中运行,它会失败,并且没有机会输入您的密码。
E:\Tools>jruby login.rb
Enter your username: username
Enter your password:
https://stackoverflow.com/questions/133719
复制相似问题