Я никогда прежде не касался bash, так что, возможно, решение моей проблемы очевидно, но я не могу обернуться вокруг него.Я хочу установить свой PS1 на определенные значения с определенными цветами.Он работает нормально, пока я не выведу цветовой код из подоболочки, затем он испортится.
Например:
some_color='\033[01;38;5;196m'
PS1="\[$some_color\] $USER "
Работает просто отлично.Предположим, у меня есть функция get_color, которая отображает цветовой код с escape-последовательностью, моя подсказка печатает последовательность \ [\] перед именем пользователя, а история bash портится, когда я нажимаю стрелку вверх пару раз.
some_color='\033[01;38;5;196m'
function get_color() {
echo -n "\[$some_color\]"
}
PS1="\$(get_color) $USER "
Когда я пропускаю последовательность, она печатает правильный вывод, но история bash все еще испорчена.Когда я использую printf и последовательности \ 001 и \ 002 вместо \ [и \], это работает просто отлично.Почему не работает эхо?
some_color='\033[01;38;5;196m'
function get_color() {
printf \001$some_color\002"
}
PS1="\$(get_color) $USER "