尝试根据CWD更改bash提示的颜色。更改目录后无法更新]]

问题描述 投票:0回答:1

我有两个存储驱动器,正在尝试配置我的bashrc文件来做到这一点:

如果cwd在驱动器B上:

  • 截断bash提示符以从第二个驱动器的/ home目录开始
  • 将bash提示符的颜色更改为红色,以了解我正在其他驱动器中工作。
  • 到目前为止,我已经可以使用以下代码完成颜色的更改,并且可以通过使用'\ W'修饰符截断整个提示以仅显示基本名称-但正在努力通过指定a来修剪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

我有两个存储驱动器,正在尝试配置我的bashrc文件来执行此操作:如果cwd位于驱动器B上:截断bash提示符以从第二个驱动器的/ home目录开始,请更改...

bash prompt truncate ps1
1个回答
0
投票

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

但是,您要从路径的开头替换许多目录。

© www.soinside.com 2019 - 2024. All rights reserved.