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

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

user1@localhost:~/Pictures/awesome_trip/

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

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

Я бы хотел, чтобы приглашение изменилось на

user1@localhost:/.../funny_pics

Я знаю, как изменить приглашение в . bashrc

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

CUR_PROMPT=$(pwd); # get the working dir

CUR_PROMPT_LENGTH={#CUR_PROMPT}; # get the length

if[ $CUR_PROMPT_LENGTH -gt 20 ]; then 
  # if prompt is long, render shorter version
  PS1='\u@\h:...\w:\$';
else
  # else render long version
  PS1='\u@\h:\W:\$'

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

1
задан 28 August 2021 в 04:46

1 ответ

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

export PS1="\u@\h [\W] \\$\[$(tput sgr0)\]"

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

http://bashrcgenerator.com/

0
ответ дан 4 September 2021 в 09:27

Другие вопросы по тегам:

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