В моей системе при использовании цветного приглашения последняя строка вывода предыдущей команды перезаписывается, если последний символ вывода не является новой строкой.
Пример: используя стандартную неокрашенную команду bash, мы имеем:
[myusername@myhostname dirname]$ echo -n foo-bar foo-bar[myusername@myhostname dirname]$
Это ожидается.
Однако, используя следующую цветную подсказку:
PS1='\[\033[1;32m\]\u@\h\[\033[0m\]:\[\033[1;34m\]\w\[\033[0m\]\$ '
у нас (показано здесь без цвета):
myusername@myhostname:~/path/to/dirname$ echo -n foo-bar myusername@myhostname:~/path/to/dirname$ rname$
Курсор теперь находится на последнем "r" в строке. Ввод некоторых символов в командной строке перезаписывает последний «rname $». Конечным результатом является то, что если вывод предыдущей команды не заканчивается новой строкой, я не вижу, что это такое. Это самая важная вещь, которую нужно исправить. То, как появляются дополнительные символы, но их можно перезаписать, меня не сильно беспокоит, но было бы неплохо исправить.
Я пробовал это с другими цветными приглашениями из документации bash, и с некоторыми цветными приглашениями от других ответов супер-пользователей относительно цветных приглашений, и все они ведут себя точно так же.
$ bash --version GNU bash, version 3.1.17(1)-release (x86_64-redhat-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc.
Не уверен, но я думаю, что это CentOS, не знаю, какая версия. Дайте мне команду проверить ОС, и я ее запущу.