考虑以下最小化的 Bash 脚本:
echo Enter your name:
read NAME
echo $NAME
现在,如果我运行脚本并输入名称并想使用箭头键浏览我的输入,将返回 [[D^
个字符。
您将如何重写该脚本以满足此类行为,即让我使用按键导航而不是赢得 ASCII 竞赛?
最佳答案
这些字符序列是终端传达“光标向左”已被按下的方式。如果接收它的程序没有这样解释它,而是只是显示它们(在过滤转义字符之后),那就是你得到的。
幸运的是,bash 的读取命令具有选项 -e
以启用使用 Readline 读取行中的内容。 Readline 执行所有这些处理(就像它对正常的 bash 命令输入所做的那样)。
关于Bash 脚本箭头键产生奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19818752/