Рейтинг:2

Как динамически сократить текущий рабочий каталог в приглашении bash

флаг tr

Поэтому я ищу способ сократить путь в подсказке, если он достигает определенной длины, например:

user1@localhost:~/Pictures/awesome_trip/

Было бы хорошо, но если мы перейдем к большему количеству подкаталогов, таких как:

user1@localhost:~/Pictures/awesome_trip/first_day/mikes_camera/funny_pics

Я хотел бы, чтобы подсказка изменилась на

user1@localhost:/.../funny_pics

Я знаю, как изменить подсказку в .bashrc

Мне было интересно, есть ли способ сделать это динамически, чтобы я мог получить текущую длину рабочего каталога, проверить длину и изменить подсказку. что-то вроде:

CUR_PROMPT=$(пароль); # получить рабочий каталог

CUR_PROMPT_LENGTH={#CUR_PROMPT}; # получить длину

если[$CUR_PROMPT_LENGTH-gt 20]; тогда 
  # если подсказка длинная, отображать более короткую версию
  PS1='\u@\h:...\w:\$';
еще
  # иначе визуализируем длинную версию
  PS1='\u@\h:\W:\$'

Надеюсь, есть способ сделать это, Спасибо за ваш ответ.

флаг hr
Оболочка bash уже реализует для этого механизм PROMPT_DIRTRIM – см. [Как я могу сократить приглашение командной строки (bash)?](https://askubuntu.com/a/459355/178692)
Telegonicaxx avatar
флаг tr
@steeldriver Это именно то, что я искал. Не могу поверить, что не наткнулся на него, когда гуглил. Спасибо!
Рейтинг:0
флаг cn

Вы можете использовать что-то вроде кода ниже. Просто добавьте его в свой файл .bashrc в домашней папке. Это в основном сделает ваше приглашение похожим на «user@computername [dir] $», поэтому оно может выглядеть как telegonicaxx@laptop [shared] $

экспорт PS1="\u@\h [\W] \$\[$(tput sgr0)\]"

Вы можете создать свой собственный стиль и цвета подсказок, используя веб-сайт, указанный ниже.

http://bashrcgenerator.com/

Telegonicaxx avatar
флаг tr
Спасибо @Roxana, это действительно классный сайт, спасибо, что поделились им. Хотя не совсем то, что я искал

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.