首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Ruby中从命令行读取密码?

如何在Ruby中从命令行读取密码?
EN

Stack Overflow用户
提问于 2008-09-25 14:32:33
回答 5查看 20.3K关注 0票数 35

我在Windows机上运行Ruby和MySQL。

我有一些需要连接到MySQL数据库并执行select的Ruby代码。要连接到数据库,我需要提供密码以及其他信息。

Ruby代码可以显示要求输入密码的提示,用户键入密码并按Enter键。我需要的是将输入的密码显示为一行星号。

如何让Ruby在“dos”框中将键入的密码显示为一行星号?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-09-25 16:19:53

为了回答我自己的问题,并且为了其他想知道的人的利益,有一个叫做HighLine的Ruby gem是你需要的。

代码语言:javascript
复制
require 'rubygems'
require 'highline/import'

def get_password(prompt="Enter Password")
   ask(prompt) {|q| q.echo = false}
end

thePassword = get_password()
票数 50
EN

Stack Overflow用户

发布于 2010-04-15 01:52:52

根据Highline文档,这似乎是可行的。不确定它是否能在Windows上工作。

代码语言:javascript
复制
#!/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 = "*" }

以下是控制台上的输出:

代码语言:javascript
复制
$ ruby highline.rb 
Enter your username:  doug
Enter your password:  ******
票数 12
EN

Stack Overflow用户

发布于 2013-09-12 05:35:27

以下代码(lobin.rb)在ruby中运行,而不是在jruby中运行

代码语言:javascript
复制
require 'highline/import'

$userid = ask("Enter your username:  ") { |q| q.echo = true }
$passwd = ask("Enter your password:  ") { |q| q.echo = "*" }

控制台输出:

代码语言:javascript
复制
E:\Tools>ruby login.rb
Enter your username:  username
Enter your password:  ********

但是,如果我在jruby中运行,它会失败,并且没有机会输入您的密码。

代码语言:javascript
复制
E:\Tools>jruby login.rb
Enter your username:  username
Enter your password:
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/133719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档