【发布时间】:2013-10-23 03:55:31
【问题描述】:
我正在编写一个小型交互式命令行工具,提示用户按数字键。它应该在第一次按键/输入后直接继续。
目前我这样做是为了捕捉用户的输入
puts "yes, please ..."
gets.chomp
...但是这需要按“enter”来确认输入。如何在第一次按键后立即返回输入值?
【问题讨论】:
我正在编写一个小型交互式命令行工具,提示用户按数字键。它应该在第一次按键/输入后直接继续。
目前我这样做是为了捕捉用户的输入
puts "yes, please ..."
gets.chomp
...但是这需要按“enter”来确认输入。如何在第一次按键后立即返回输入值?
【问题讨论】:
试试这样的:
puts 'Do you want to proceed? y/n'
loop do
system("stty raw -echo")
c = STDIN.getc
system("stty -raw echo")
case c
when 'y'
puts 'Yes'
break
when 'n'
puts 'No'
break
else
puts 'Please type "y" or "n"'
end
end
【讨论】: