Суть проблемы — в prompt некорректно работает подстановка тильды вместо $HOME.
PS1="> \[\033[0;92m\]\w\[\033[0;15m\]\n\$ "
Воспроизводится так:
- Открываешь терминал (неважно какой), всё нормально.
- После перехода в любую папку или выполнения
cd вместо тильды уже отображается абсолютный путь.
Наглядно (мой prompt двухстрочный):
> ~
$ cd
> /home/gd
$
Моя версия bash 5.1.4(1)-release.
Маны уже выкурил, ничего, кроме
\w для автоматической подстановки тильды вместо $HOME в баше нет. Есть
\W (и он работает), который показывает текущую директорию (basename), но мне так не надо.
Пробовал решить проблему руками вот так:
${PWD//${HOME::(-1)}/\~}
Но тоже не работает в prompt. Если выводить через
echo, то ок. И этот код и сам
PS1 отлично работают в Ubuntu.
btw i use arch.