2

我希望从用户那里读取数据,但是,我不希望输入直接显示在屏幕上。相反,我想将其留空,或者更好的是,用星号混淆要输入的字符。

例如:

print "Password: "
pass = STDIN.gets.chomp
4

1 回答 1

6

假设您至少使用 ruby​​ 1.9,您可以使用以下noecho方法IOhttp ://www.ruby-doc.org/stdlib-2.0/libdoc/io/console/rdoc/IO.html#method-i-noecho

所以:

require 'io/console'
print "Password: "
STDIN.noecho(&:gets).chomp

这不会混淆字符,而只会将输入终端留空。

于 2013-08-07T20:10:29.747 回答