Dro*_*roj 30
您可以使用IO /控制台模块中的STDIN.noecho方法:
require 'io/console'
pw = STDIN.noecho(&:gets).chomp
Run Code Online (Sandbox Code Playgroud)
gle*_*man 24
如果您使用的是以下系统stty:
`stty -echo`
print "Password: "
pw = gets.chomp
`stty echo`
puts ""
Run Code Online (Sandbox Code Playgroud)
Kon*_*ase 13
这种用户交互有一个宝石:高线.
password = ask("Password: ") { |q| q.echo = false }
Run Code Online (Sandbox Code Playgroud)
甚至:
password = ask("Password: ") { |q| q.echo = "*" }
Run Code Online (Sandbox Code Playgroud)
小智 6
您希望确保您的代码是幂等的......此处列出的其他解决方案假设您希望在重新打开echo的情况下退出此功能块.那么,如果在输入代码之前关闭它会怎样,并且预计会保持关闭状态?
stty_settings = %x[stty -g]
print 'Password: '
begin
%x[stty -echo]
password = gets
ensure
%x[stty #{stty_settings}]
end
puts
print 'regular info: '
regular_info = gets
puts "password: #{password}"
puts "regular: #{regular_info}"
Run Code Online (Sandbox Code Playgroud)