每次目录更改时设置一个bash变量

每次目录更改时设置一个bash变量,bash,path,prompt,Bash,Path,Prompt,我希望bashshell中有一个变量,类似于pwd,但等于当前工作目录的一部分,而不是整个路径 i、 e 我已经有一个显示此路径的提示,但我希望在每次更改目录时将环境中的一个变量更新为此值 我该怎么做呢?您可以使用promptcmd功能。从manbash中,我们了解到该函数是在显示提示之前执行的。它默认为空(或者更确切地说,未定义) 一个简单的例子: promptcmd(){ local p=$(pwd) PATH_SECT=${p/\/a\/b\/} } 您可以在.bashr

我希望bashshell中有一个变量,类似于
pwd
,但等于当前工作目录的一部分,而不是整个路径

i、 e

我已经有一个显示此路径的提示,但我希望在每次更改目录时将环境中的一个变量更新为此值


我该怎么做呢?

您可以使用
promptcmd
功能。从
manbash
中,我们了解到该函数是在显示提示之前执行的。它默认为空(或者更确切地说,未定义)

一个简单的例子:

promptcmd(){
    local p=$(pwd)
    PATH_SECT=${p/\/a\/b\/}
}

您可以在
.bashrc
中使用
别名和函数:

alias cd="supercd"  # call the function
function supercd(){
  builtin cd "$@"   # original cd
  PATH_SECT=$(pwd)  # or whatever
}

您是否只需要为bash提示符使用此环境变量,还是在命令中也使用此环境变量?我希望能够使用此变量在shell中运行命令。
alias cd="supercd"  # call the function
function supercd(){
  builtin cd "$@"   # original cd
  PATH_SECT=$(pwd)  # or whatever
}