我有一个简单的任务,需要等待文件系统上的某些东西发生变化(它本质上是一个原型编译器)。所以我有一个简单的无限循环,在检查更改的文件后休眠 5 秒。
loop do
# if files changed
# process files
# and puts result
sleep 5
end
而不是Ctrl+C
敬礼,我宁愿能够测试并查看是否按下了某个键,而不会阻塞循环。本质上,我只需要一种方法来判断是否有传入的按键,然后抓住它们直到遇到 Q,然后退出程序。
我想要的是:
def wait_for_Q
key_is_pressed && get_ch == 'Q'
end
loop do
# if files changed
# process files
# and puts result
wait_for_Q or sleep 5
end
或者,这是 Ruby 没有做的事情(很好)?