У моїй системі при використанні кольорової підказки останній рядок виводу попередньої команди перезаписується, якщо останній символ виводу не є новою.
Приклад: Використовуючи за замовчуванням не кольоровий запит 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, не знаю, яка версія. Дайте мені команду перевірити O.S., і я запустити його.
PROMPT_COMMAND
щоб побачити, чи зберігається поведінка. Також було б корисно, якщо ви вказали вашу версію bash (запустіть bash -- version
) і ОС.
unset PROMPT_COMMAND
не допомагає. $ echo $PROMPT_COMMAND
дає echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"