Задать вопрос
gedev
@gedev
сисадмин-энтузиаст

Почему в bash prompt $HOME не заменяется на тильду?

Суть проблемы — в 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.
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Средний 3 комментария
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Вот древний тред https://lists.gnu.org/archive/html/bug-bash/2012-0... с похожей ошибкой из-за лишнего слеша в конце $HOME.

Проверьте что у вас в качестве HOME указано в /etc/passwd
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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