lxterminal подсказка нежелательные символы

lxterminal подсказка нежелательные символы

У меня свежая установка Lubuntu 14.04. Я использую LXTerminal и вот приглашение, которое я настраиваю через файл .bashrc:

export PS1="\e[0;36m$ \w \e[m"

Предположим, я ввожу команду длиной до 15 символов (и выполняю ее, чтобы она зарегистрировалась в истории) (не говоря уже о «команда не найдена»):

$ ~ 012345678901234
012345678901234: command not found

Теперь, если я нажму стрелку вверх, я получу свою команду обратно:

$ ~ 012345678901234

А если я нажму стрелку вниз, то вернусь к простой подсказке:

$ ~ 

ПРОБЛЕМА Проблема начинается, если мне нужно запустить 16 или более символов:

$ ~ 0123456789012345
0123456789012345: command not found

Теперь, когда я нажимаю стрелку вверх, мне отлично отображается предыдущая команда:

$ ~ 0123456789012345

Нажатие стрелки вниз не возвращает меня к голому приглашению, оно каким-то образом запоминает 10 символов первой команды длиной более 16 символов в моей истории и отображает ее до тех пор, пока не будет запущено что-то еще. По сути, это становится моим приглашением по умолчанию на данный момент.

$ ~ 0123456789

Теперь я могу нажать Enter, чтобы избавиться от него, или выполнить любую другую команду. Для примера это:

$ ~ 0123456789ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

Что я могу сделать, чтобы это исправить? Это не такая уж большая проблема, но это довольно раздражает.

решение1

Вам нужно обернуть цветовые коды в \[и\]

PS1='\[\e[0;36m\]$ \w \[\e[m\]'

Кроме того, PS1 актуален только для вашей интерактивной оболочки, вам не нужно экспортировать его в дочерние процессы.

Связанный контент