识别 Ctrl+KEY 以防 bash

Recognizing Ctrl+KEY in case in bash

我一直在寻找答案,但找不到,所以现在我必须问一下。

我正在编写一个脚本,该脚本通过循环遍历每个键字母来将文本字符串创建为 T9 Numpad(没有字典)。 除了处理退格键(数字键盘上的真正退格键)之外,所有这些都在工作。我使用 "Read -n 1" 作为输入,据我所知,退格键映射到“^?”据我所知,“^”对应于在键入“?”时按下的 ctrl。我无法获得处理此输入的案例,而且我不知道该怎么做。如果我用退格键代替任何单个键,即“-”,代码就可以工作。所以我只需要知道如何识别 read -n 和 case

中的退格键

您可以使用 $'...' 符号来匹配 bash 中的控制字符。 ^? 是表示 ASCII 127 (DEL) 的 C 风格符号。有几种选择:

* $'7' - octal
* $'\x7f' - hexadecimal

其中任何一个都可以用作在 case 语句中匹配的文字模式。

read -n 1 char
case $char in
    $'7') echo "Backspace" ;;
esac