使用箭头键时避免在 bash 提示符中出现 ANSI 代码

使用箭头键时避免在 bash 提示符中出现 ANSI 代码

首先,有两件事需要明确:

  • 是的,我已经看到已经有几个问题的标题听起来相似,但他们既没有谈论相同的情况,也没有令人满意的答案。
  • 当我的意思是“bash 提示符”时,我不是在谈论终端/shell 给我的提示符,而是read交互式脚本内的提示符。我不会仅在脚本中遇到此问题,而不会在“正常”shell 提示符中遇到此问题(在我的情况下:macOS 终端应用程序、Bash 5.0)。

话虽这么说,我的脚本中有用户提示。比方说,它看起来像下面这样:

read -rp "Enter your name: " name

到目前为止,一切都很好。只要用户没有犯拼写错误,这可能就没有任何问题。然而,当用户想要更正某些内容时,他们最好不要使用箭头键。如果他们这样做了,与他们的预期相反,诅咒者不会移动,但会出现奇怪的字符:

Enter your name: Sanantha^[[D

有没有办法避免这些 - 我从其他线程中学到的 - ANSI 代码的出现?预期的行为是每次按下“左”键时将光标实际向左移动一个字符。

由于这是一个要分发的脚本,因此如果可以在脚本内修复此问题并且不需要弄乱配置文件,那就最好了。

亲切的问候!

相关内容