识别 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
我一直在寻找答案,但找不到,所以现在我必须问一下。
我正在编写一个脚本,该脚本通过循环遍历每个键字母来将文本字符串创建为 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