Попытка изменить цвет подсказки bash в зависимости от CWD. Не удается обновить его после смены каталогов - PullRequest
0 голосов
/ 02 декабря 2019

У меня есть два накопителя, и я пытаюсь настроить мой файл bashrc для этого:

Если диск cwd находится на диске B:

  • Обрезать приглашение bash, чтобы начать скаталог / home второго диска
  • Измените цвет приглашения bash на красный, чтобы знать, что я работаю на другом диске.

До сих пор мне удалось выполнить изменениецвет со следующим кодом и может усечь все приглашение, чтобы показать только базовое имя с помощью модификатора '\ W' - но я борюсь с тем, как обрезать PROMPT_COMMAND, указав нижний каталог ...

т.е.

/ media / devj / 2a24a03f-99a1-44bd-9a53-341zdd68334b / home / dev -> / home / dev /

Решение: Спасибо за помощь, вот что я и сделал:

#Check if we are accessing my home folder from secondary drive
#If so change the color and trim the filepath to secondary /home
bash_prompt_command() {
    root_path=`pwd | awk -F/ '{print $(NF-(NF-2))}'`
    if [ $root_path = media ]; then #Shared drive
        #Trim path up to the home directory
        trim_path=${PWD#/media/devj/9a84a09e-80e9-44bd-9a53-342e3d48334c/}
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]$trim_path\[\033[38;5;214m\]$(parse_git_branch)\[\033[00m\]\$ '
    else
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[38;5;214m\]$(parse_git_branch)\[\033[00m\]\$ '
    fi
}

# init it by setting PROMPT_COMMAND
PROMPT_COMMAND=bash_prompt_command

1 Ответ

0 голосов
/ 02 декабря 2019

trim_path=${PWD#/*/*/*/}

Замените столько каталогов, которые вы хотите опустить в начале пути.

...