我是ruby的新手。我需要通过gets
命令接收密码作为输入。
在gets
调用期间,如何隐藏在终端中键入的密码输入
发布于 2010-02-26 09:19:53
来自@eclectic923答案的最佳方法:
require 'io/console'
password = STDIN.noecho(&:gets).chomp
对于1.9.3 (和更高版本),这需要您在代码中添加require 'io/console'
。
原始答案:
Ruby "Password“是另一种选择。
发布于 2012-08-02 02:29:07
也可以使用核心ruby。
$ ri IO.noecho
(from ruby core)
------------------------------------------------------------------------------
io.noecho {|io| }
------------------------------------------------------------------------------
Yields self with disabling echo back.
STDIN.noecho(&:gets)
will read and return a line without echo back.
对于1.9.3 (和更高版本),这需要您在代码中添加require 'io/console'
。
require 'io/console'
text = STDIN.noecho(&:gets)
发布于 2010-02-26 09:18:17
有一个名为highline的库,它的工作方式如下:
require 'rubygems'
require 'highline/import'
password = ask("Enter password: ") { |q| q.echo = false }
# do stuff with password
https://stackoverflow.com/questions/2338889
复制相似问题