我的头像,内容是在地球上空中看太阳升起。
sjdhome blog愿你有一天能与重要的人重逢

解决修改 Bash Prompt 后翻阅历史命令时显示错位

在修改过PS1变量后,使用上下方向键翻阅历史命令时可能会出现命令将提示符覆盖掉的情况。

方法

将不可见字符(如 ASCII 颜色字符)用\[\]包起来。

例如:PS1=\e[32m\$\e[0m  -> PS1=\[\e[32m\]\$\[\e[0m\] 

原理

Bash 在覆盖当前行时会计算 Prompt 的长度,即使是不可见字符也会计算在内。\[\]的作用是让 Bash 不计算这部分字符的长度。

参考资料

作者:sjdhome

标签:

创作日期:2023/7/10

编辑日期:2023/7/10

许可协议:CC BY-NC-SA 4.0

转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!