Bash 脚本箭头键产生奇怪的字符

标签 bash shell keyboard

考虑以下最小化的 Bash 脚本:

echo Enter your name:
read NAME
echo $NAME

现在,如果我运行脚本并输入名称并想使用箭头键浏览我的输入,将返回 [[D^ 个字符。

您将如何重写该脚本以满足此类行为,即让我使用按键导航而不是赢得 ASCII 竞赛?

最佳答案

这些字符序列是终端传达“光标向左”已被按下的方式。如果接收它的程序没有这样解释它,而是只是显示它们(在过滤转义字符之后),那就是你得到的。

幸运的是,bash 的读取命令具有选项 -e 以启用使用 Readline 读取行中的内容。 Readline 执行所有这些处理(就像它对正常的 bash 命令输入所做的那样)。

关于Bash 脚本箭头键产生奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19818752/

相关文章:

bash - 带有 bash 和 applescript 的字符串文字

shell - Zsh shift+control+箭头

android - 禁用键盘单个字母弹出窗口

安卓 : How to add child view on top of Softkeyboard for Emoji?

linux - bash shell 脚本显示段错误

javascript - 完全禁用父元素的焦点

c - 为什么这个声明有意想不到的副作用?

perl - ls 的 Bash 别名,按 "type"打印多列

linux - 显示已用磁盘空间,包括 bash 中的保留磁盘空间

linux - 如何删除文件中不需要的字符(使用 shell 脚本)