Проблема заключалась бы в том, что (подчеркивание мое, из руководства bash):
После того, как строка декодируется, она расширяется путем расширения параметров, замены команд, арифметического расширения и удаления цитат, при условии значение опции оболочки подсказки (см. Bash Builtins).Таким образом, \[ в вашей функции выводится слишком поздно, чтобы сообщить Bash, что управляющие коды следуют. Вам нужно установить PS1 с выходом функции, включенной для этого, для работы. Я бы предложил использовать PROMPT_COMMAND таким образом:
PROMPT_COMMAND='PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\](`batPer`)-\A:\[\033[01;34m\]\w\[\033[00m\]\$ "'
Обратите внимание, что внутренние кавычки являются двойными кавычками, поэтому каждый раз PS1 устанавливается, к нему добавляется выход функции, а затем Bash decodes PS1, чтобы отобразить приглашение.
Сторона примечания: при этом вам не нужно echo -e выводить. Раньше вам нужно было для цвета, так как Bash не интерпретировал его после расширения строки PS1. Теперь Bash также расшифрует управляющие коды.
Через четыре дня я, наконец, нашел решение этого, так что здесь на всякий случай кто-то еще сталкивается с этой проблемой.
Оказывается, я был прав насчет проблемы с видеодрайвером. Когда я вырывался на выходе из journalctl, я заметил, что возникла проблема с сервисом gpu-manager.
update-alternatives: error: no alternatives for x86_64-linux-gnu_gfxcore_conf
Что привело к этой ошибке:
Failed to start Detect the available GPUs and deal with any system changes.
И это вызвало ошибку, изначально найденную в lightdm, а также проблемы с графическим интерфейсом.
Я нашел решение в этой теме. Мне нужно было установить пакет HWE для Xserver:
apt-get install xserver-xorg-hwe-16.04
После обновления я смог перезагрузиться, и lightdm запустился в графический интерфейс, как обычно.
Надеюсь, что это поможет кому-то другому.
Через четыре дня я, наконец, нашел решение этого, так что здесь на всякий случай кто-то еще сталкивается с этой проблемой.
Оказывается, я был прав насчет проблемы с видеодрайвером. Когда я вырывался на выходе из journalctl, я заметил, что возникла проблема с сервисом gpu-manager.
update-alternatives: error: no alternatives for x86_64-linux-gnu_gfxcore_conf
Что привело к этой ошибке:
Failed to start Detect the available GPUs and deal with any system changes.
И это вызвало ошибку, изначально найденную в lightdm, а также проблемы с графическим интерфейсом.
Я нашел решение в этой теме. Мне нужно было установить пакет HWE для Xserver:
apt-get install xserver-xorg-hwe-16.04
После обновления я смог перезагрузиться, и lightdm запустился в графический интерфейс, как обычно.
Надеюсь, что это поможет кому-то другому.
Через четыре дня я, наконец, нашел решение этого, так что здесь на всякий случай кто-то еще сталкивается с этой проблемой.
Оказывается, я был прав насчет проблемы с видеодрайвером. Когда я вырывался на выходе из journalctl, я заметил, что возникла проблема с сервисом gpu-manager.
update-alternatives: error: no alternatives for x86_64-linux-gnu_gfxcore_conf
Что привело к этой ошибке:
Failed to start Detect the available GPUs and deal with any system changes.
И это вызвало ошибку, изначально найденную в lightdm, а также проблемы с графическим интерфейсом.
Я нашел решение в этой теме. Мне нужно было установить пакет HWE для Xserver:
apt-get install xserver-xorg-hwe-16.04
После обновления я смог перезагрузиться, и lightdm запустился в графический интерфейс, как обычно.
Надеюсь, что это поможет кому-то другому.