Intereting Posts
Как перенаправить dd на pv? Как извлечь строки из одного файла в несколько файлов Как удалить. с начала строки Bash и записать результат в переменную? Regex в заявлении case получение ошибки «Невозможно создать блокировку транзакции» с rpm Как заставить ssh-соединение выйти в конце скрипта Основы работы в сети: какой IP-адрес назначен сетевому адаптеру, если нет успешных переговоров по DHCP? Показать установленные крепления для самбы Как отличить два идентичных USB-накопителя? Фильтрация цветного выхода grep Добавление строки в vim добавляет ее в строку после курсора, я хотел бы вставить awk, функция кавычки (") в выборе номера? (Linux) MD soft-raid для замены поддельного рейда: как избавиться от старых метаданных? разрешить все IP-адреса в выводе команды с помощью стандартных инструментов командной строки Найти и переместить каталог в новый каталог на основе имени

Как избежать этих ложных символов в моей подсказке bash?

У меня Fedora 20, и я хотел бы адаптировать подсказку bash, чтобы сделать ее еще более полезной для меня. В настоящее время моя команда PS1 задается этими строками в файле ~ / .bash_profile:

LP=" Last prompt at: " PS1="\[\033[s\033[0;0H\033[0;47m\033[K\033[1;34m[\$LP\]t\033[0m\033[u[<\u@\h \W>]\$ " echo 

Это дает мне хорошую строку в верхней части экрана с серой полосой (которая не отображается в этой копии) и временем последнего приглашения, таким образом:

 [ Last prompt at: ]09:22:46 [<Harry@localhost ~>]$ 

Без echo , когда открывается экран терминала, подсказка затушевывает сообщение в верхней строке. То, что делает эхо, состоит в том, чтобы эхо его аргумент, так что когда .bashrc. запускается при открытии нового терминала, без аргументов он прекрасно переходит к новой строке, оставляя верхнюю строку в одиночку. Последующие подсказки не запускаются .bashrc, поэтому эхо в новую строку не происходит.

Мой вопрос здесь касается «[]» скобок в приглашении вокруг Last prompt at: Пожалуйста, как я могу избежать появления этих скобок в отображаемом сообщении?

РЕШИТЬ
В ответ на ответ @ guido. Я уже пытался просто удалить квадратные скобки, но потом я полностью потерял строку. Я отмечаю, что вы добавили пространство после LP, и это действительно дает мне то, что я хочу, но я не понимаю, почему пространство необходимо: пожалуйста, не могли бы вы добавить к своему ответу, чтобы объяснить это?

Просто удалите квадратные скобки из вашего PS1 (также была опечатка вокруг \t ):

 LP=" Last prompt at: " PS1="\[\033[s\033[0;0H\033[0;47m\033[K\033[1;34m\$LP \t\033[0m\033[u\][<\u@\h \W>]\$ " echo 

Гвидо уже ответил на ваш конкретный вопрос , но только примечание:

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

 PS1="\[\e[s\e[2;0r\e[H\e[0;47m\e[K\e[1;34m$LP\t\e[0m\e[u\]<\u@\h \W>\$ " 

(хотя лично я бы этого не делал на уровне оболочки, но, например, используя screen и его функцию hardstatus)