Параметры в переменной bash $PS1

Параметры в переменной bash $PS1

Между различными параметрами, которые могут быть включены в bash PS1переменную, \wрасширяется

текущий рабочий каталог, где $HOME сокращено с тильдой (использует значение переменной PROMPT_DIRTRIM)

как указано вРуководство по Башу.

My $HOMEустановлен в /home/myuser/(то же значение, что указано в /etc/passwd), но расширение \wв PS1дает /home/myuserкогда я в $HOMEкаталоге. Таким образом, он не «сокращен с тильдой».

Я использую Ubuntu 16.04 с GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu).

Что не так? Что это за источник, откуда \wна самом деле копируется путь текущего каталога?

решение1

Завершающий /в /home/myuser/сбивает с толку bash. Я думаю, вы увидите нормальное поведение, если удалите его.

Этот слеш не является частью имени каталога; это разделитель пути. Он не должен быть в /etc/passwd, и он не должен быть в $HOME.

Вы можете проверить эту теорию, не прикасаясь к файлу, используя всего лишь:

HOME=/home/myuser

после чего в строке приглашения должна появиться тильда.

Связанный контент