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

时间:2015-05-18 18:34:24

标签: bash .bash-profile

我正在工作

关于多个项目:A,B,C,D,E和F. 我通过终端浏览所有项目,并通过终端标签在它们之间进行交换。

有时,我在项目之间混淆,因为它们具有相同的文本颜色,在这种情况下是黄色。

enter image description here

我正在尝试

实现这样的目标:

enter image description here

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

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

的.bash_profile

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

black="\[\033[0;30m\]"
blue="\[\033[1;37m\]"
green="\[\033[0;32m\]"
cyan="\[\033[0;36m\]"
red="\[\033[0;31m\]"
purple="\[\033[0;35m\]"
brown="\[\033[0;33m\]"
lightgray="\[\033[0;37m\]"
darkgray="\[\033[1;30m\]"
lightblue="\[\033[1;34m\]"
lightgreen="\[\033[1;32m\]"
lightcyan="\[\033[1;36m\]"
lightred="\[\033[1;31m\]"
lightpurple="\[\033[1;35m\]"
yellow="\[\033[1;33m\]"
white="\[\033[1;37m\]"
nc="\[\033[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"

1 个答案:

答案 0 :(得分:3)

在显示提示之前,您必须使用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"