从 Shell 输入中检测元(特殊)键(Ctrl、Shift、Alt、Tab、Esc、Backspace)
我想知道是否有人知道如何检测元(特殊)键 (Ctrl、Shift、Alt、Tab、Esc、退格键)来自 Shell 输入。
我看过解释如何检测箭头键等的帖子,但没有看到上面的特殊键。
有什么方法可以执行 $ showkey -s
并使用原始扫描代码以某种方式获取按键输入?
任何形式的帮助将不胜感激!
I want to know if anybody knows how to detect meta (special) keys
(Ctrl, Shift, Alt, Tab, Esc, Backspace) from Shell Input.
I've seen posts that explain how to detect arrow keys and such, but not the above special keys.
Is there any way I can do $ showkey -s
and use the raw scan-code to somehow get the key input?
Any kind of help will be much appreciated!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一般来说,你不能这样做。也就是说:
KeyPress
和KeyRelease
事件。console_ioctl(4)
中。您可以将键盘设置为 RAW 或 MEDIUMRAW 模式(不要将这些模式与 termios 的 raw 模式混淆,它们根本不相关)。In general, you cannot do it. That said:
KeyPress
andKeyRelease
events.console_ioctl(4)
. You would set the keyboard to RAW or MEDIUMRAW mode (don't confuse these modes with termios' raw mode, they are not related at all).我不确定它总是有意义。
tty
规则正在做一些事情(细节很血腥)。也许您需要一个帮助程序(例如,在 C 语言中,它将使用像ncurses
或readline
这样的库),例如对话框
!I'm not sure it always make sense. The
tty
discipline is doing something (details are gory). Perhaps you need a helper program (e.g. in C, which would use a library likencurses
orreadline
) such asdialog
!