提问人:nakakapagpabagabag 提问时间:11/6/2021 更新时间:11/7/2021 访问量:72
STDIN.getpass 并不总是在终端中显示按键图标
STDIN.getpass does not always show the key icon in the terminal
问:
如何确保每次调用时都显示按键图标(参见 img 以获取示例)?问题是间歇性的,有时我得到图标,有时我没有。我找不到可靠的复制步骤。STDIN.getpass
我的代码目前是什么样子的:
$stdout.flush
# to hide the password while being typed in the terminal
STDIN.getpass
- 我以为会解决我的问题,但事实并非如此。
$stdout.flush
STDIN.getpass
被返回,因此它不会分配给任何变量。
答:
1赞
Sam Winstanley
11/7/2021
#1
他们的键图标本身与非常简单的功能没有太大关系,你可以在这里看到它:STDIN.getpass
https://github.com/ruby/io-console/blob/master/lib/io/console/ffi/common.rb#L9-L21
该块只是将 设置为 (参见 https://github.com/ruby/ruby/blob/d92f09a5eea009fa28cd046e9d0eb698e3d94c5c/ext/io/console/console.c#L602noecho
tty_mode
noecho
)
所以,我认为这个问题实际上更好,因为:“当tty_mode设置为 .Terminal program
my operating system
noecho
评论
STDIN.getpass "Enter password:"