如何检查 bash 中的当前路径?

How can I check for the current path in bash?

我在工作

在多个项目上:A、B、C、D、E 和 F。 我通过 Terminal 查看所有项目,并通过 Terminal Tabs.

在它们之间交换

有时,我会混淆项目,因为它们的文本颜色相同,在本例中是黄色。


我在努力

实现这样的目标:

我想根据项目的当前路径分配不同的颜色。

如何检查 bash 中的当前路径?


.bash_profile

#================================
#            Colors             =
#================================

black="\[3[0;30m\]"
blue="\[3[1;37m\]"
green="\[3[0;32m\]"
cyan="\[3[0;36m\]"
red="\[3[0;31m\]"
purple="\[3[0;35m\]"
brown="\[3[0;33m\]"
lightgray="\[3[0;37m\]"
darkgray="\[3[1;30m\]"
lightblue="\[3[1;34m\]"
lightgreen="\[3[1;32m\]"
lightcyan="\[3[1;36m\]"
lightred="\[3[1;31m\]"
lightpurple="\[3[1;35m\]"
yellow="\[3[1;33m\]"
white="\[3[1;37m\]"
nc="\[3[0m\]"

if [ "\w" == "~/dev/projects/biv2" ]; then
  export PS1="──$white[$blue\w$white] \n└── $white"
fi

// Default Color
export PS1="──$white[$yellow\w$white] \n└── $white"

您必须在显示提示之前使用 PROMPT_COMMAND 检查当前目录是什么,并相应地设置 PS1 的值。

prompt_cmd () {
    case $PWD in
        ~/dev/projects/biv2) dircolor=$yellow ;;
        ~/dev/projects/other) dircolor=$blue ;;
        # and so on. For any other directory,
        *) dircolor=$green
    esac
    PS1="──$white[$dircolor\w$white] \n└── $white"
}

PROMPT_COMMAND=prompt_cmd

没有PROMPT_COMMAND,你可以做类似

的事情
set_dir_color () {
    case $PWD in
        ~/dev/projects/biv2) dircolor=$yellow ;;
        ~/dev/projects/other) dircolor=$blue ;;
        # and so on. For any other directory,
        *) dircolor=$green
    esac
    echo "$dircolor"
}

PS1="──$white[$(set_dir_color)\w$white] \n└── $white"