Командная строка по записанному предыдущими командами!

Моя система имеет Сервер Ubuntu 12,04 установленных в текстовом режиме (никакой X Window) и командная строка, которая определяется в моем ~/.bashrc файл следующей строкой:

    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \[\033[01;35m\] \[$(date "+%a %F %T %Z")\] \[\033[00m\]\$ '  

Это похоже:

username@hostname:~  Wed Jul 2015-07-22 18:00:12 JST $ 

Если я нажимаю, ↑ предыдущая команда в моей истории отображена перед вышеупомянутым promp, например:

username@hostname:~  Wed Jul 2015-07-22 18:00:12 JST $ vim /home/username/~/.bshrc

Если я нажимаю в  второй раз, предыдущая команда в, история отображена, но это по записанному на некоторой части моей подсказки, т.е.:

username@hostname:~  Wedsudo su

Отметьте это Jul 2015-07-22 18:00:12 JST $ по записанному!

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

  • Всегда, последняя часть командной строки по записанному после дня недели, т.е. Wed и это положение фиксируется, если я нажимаю или .

  • Если я выполняю команду или нажимаю Ctrl+C, командная строка отображена полностью снова.

Кто-либо может помочь решить эту проблему?

2
задан 22 July 2015 в 07:54

1 ответ

Это перестало работать, потому что Вы включили $(date ...) в \[ и \]. Удалите их, и это должно работать как ожидалось.

\[ ... \], в подсказке, используется, чтобы сказать удару, что символы в не добавят к продолжительности подсказки. Вам нужно это вокруг терминальных Escape как \033[01;32m, потому что это только делает следующий текст другим цветом, но те 8 байтов не добавят к продолжительности подсказки; их вместо этого ест терминал.

На ноте стороны; удар может уже поместить дату в подсказку для Вас, не имея необходимость работать эти date команда.

PS1='... \D{%a %F %T %Z} ...'

См. http://www.gnu.org/software/bash/manual/bash.html#Controlling-the-Prompt

7
ответ дан 2 December 2019 в 01:37

Другие вопросы по тегам:

Похожие вопросы: