Josef Klimuk Asked: 2022-06-30 05:32:58 +0800 CST2022-06-30 05:32:58 +0800 CST 2022-06-30 05:32:58 +0800 CST 如何使用特殊字符作为用户输入 772 我想在条件语句中使用用户输入的特殊字符。我试过了: read -p "press arrow up" foo if [ $foo == "^[[A" ]; then echo yes; fi 它没有做我想让它做的事情。 command-line 2 个回答 Voted Best Answer steeldriver 2022-06-30T06:29:50+08:002022-06-30T06:29:50+08:00 在 bash 中,您可以使用ANSI-C 引用 #!/bin/bash read -p "press arrow up " foo if [ "$foo" = $'\e[A' ]; then echo 'yes' fi 有关更细微的版本,请参阅BASH 问题:使用读取,我可以捕获单个字符或箭头键(在 keyup 上) pLumo 2022-06-30T05:54:26+08:002022-06-30T05:54:26+08:00 不是特别漂亮,但您可以比较十六进制值。 要找出向上箭头的十六进制值,请foo手动分配并运行 xxd <<< "$foo" 将输出复制粘贴到您的脚本并用于xxd -r恢复十六进制值: up_arrow="$(xxd -r <<< "00000000: 1b5b 410a")" if [ "$foo" = "$up_arrow" ]; then echo yes; fi
在 bash 中,您可以使用ANSI-C 引用
有关更细微的版本,请参阅BASH 问题:使用读取,我可以捕获单个字符或箭头键(在 keyup 上)
不是特别漂亮,但您可以比较十六进制值。
要找出向上箭头的十六进制值,请
foo
手动分配并运行将输出复制粘贴到您的脚本并用于
xxd -r
恢复十六进制值: