首先,有两件事需要明确:
- 是的,我已经看到已经有几个问题的标题听起来相似,但他们既没有谈论相同的情况,也没有令人满意的答案。
- 当我的意思是“bash 提示符”时,我不是在谈论终端/shell 给我的提示符,而是
read
交互式脚本内的提示符。我不会仅在脚本中遇到此问题,而不会在“正常”shell 提示符中遇到此问题(在我的情况下:macOS 终端应用程序、Bash 5.0)。
话虽这么说,我的脚本中有用户提示。比方说,它看起来像下面这样:
read -rp "Enter your name: " name
到目前为止,一切都很好。只要用户没有犯拼写错误,这可能就没有任何问题。然而,当用户想要更正某些内容时,他们最好不要使用箭头键。如果他们这样做了,与他们的预期相反,诅咒者不会移动,但会出现奇怪的字符:
Enter your name: Sanantha^[[D
有没有办法避免这些 - 我从其他线程中学到的 - ANSI 代码的出现?预期的行为是每次按下“左”键时将光标实际向左移动一个字符。
由于这是一个要分发的脚本,因此如果可以在脚本内修复此问题并且不需要弄乱配置文件,那就最好了。
亲切的问候!