【发布时间】:2015-05-27 15:03:09
【问题描述】:
我一直在寻找答案,但找不到,所以现在我必须问。
我正在编写一个脚本,通过循环遍历每个键字母来创建一个文本字符串作为 T9 数字键盘(没有字典)。 除了处理退格(小键盘上的真正退格)之外,所有这些都可以正常工作。我使用“Read -n 1”作为输入,据我所知,退格映射到“^?”据我所知,“^”对应于在键入“?”时按下 ctrl。我无法获得处理此输入的案例,而且我不知道该怎么做。如果我用退格键替换任何单个键,即“-”,则该代码有效。所以我只需要知道我如何能够识别 read -n 和 case 中的退格
【问题讨论】:
-
在此阅读中查看退格键的输出,看看你得到了什么结果:
read -n 1 bs; printf %q\\n "$bs"。 (或者,printf %s "$bs" | xxd。) -
请注意,您的
stty设置将影响退格 (^H) 和删除 (^?) 映射。您可能需要进行原始输入,这可能会改变终端连接的状态。
标签: bash if-statement input case ctrl