
По сути, я хочу отобразить что-то вроде:
[email protected]:../projects/1234/source$ cd cpp
[email protected]:../1234/source/cpp$
вместо:
[email protected]:/opt/home/me/dev/projects/1234/source$ cd cpp
[email protected]:/opt/home/me/dev/projects/1234/source/cpp$
Я добился второго результата, используя: PS1='$(whoami)@$(hostname):$(pwd)$ '
, но не уверен, как это изменить (или возможно ли это для моего сценария)
решение1
Этот вопрос уже задавался ранее, и на него предлагались следующие ответы:
- обрезать рабочий каталог командной строки терминалана AskUbuntu One предлагает установить
PROMPT_COMMAND
(чтобы в свою очередь установитьPS1
), используя пользовательский скрипт. Другой говорит, что если у вас bash 4.x, то он поддерживаетPROMPT_DIRTRIM
переменную (и предлагает обходной путь для старых версий bash). - Как сократить приглашение командной строки (bash)?на AskUbuntu Опять же, упоминание
PROMPT_DIRTRIM
.
Theруководство по bashописывает это, но не подробно:
PROMPT_DIRTRIM
Если установлено число больше нуля, значение используется как количество конечных компонентов каталога, которые необходимо сохранить при расширении экранированных
\w
строк\W
приглашения (см. Управление приглашением). Удаленные символы заменяются многоточием.