![为什么在读取输入中输入长字符串时颜色会出现异常?](https://linux22.com/image/215593/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%E8%AF%BB%E5%8F%96%E8%BE%93%E5%85%A5%E4%B8%AD%E8%BE%93%E5%85%A5%E9%95%BF%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%97%B6%E9%A2%9C%E8%89%B2%E4%BC%9A%E5%87%BA%E7%8E%B0%E5%BC%82%E5%B8%B8%EF%BC%9F%20.png)
当我输入很长的字符串时,我似乎无法将光标移动到彩色读取输入的开头。下面的 gif 准确地显示了这一点,光标只是停留在那里,我无法将其移动到更左边。
但是,如果我从读取输入中省略任何颜色,则不会发生这种情况。
这是我不知道的“功能”吗?因为我的脚本依赖于彩色读取输入,所以这让我很困扰。无论如何要解决这个问题吗?
更多信息,使用命令。
read -ep $'\e[31mFoobar\e[0m: ' foo # Colored
read -ep "Foobar: " foo # Not colored
还有我的 bash 版本,如果相关的话。
bash --version
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>