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

时间:2012-08-29 09:34:59

标签: bash path prompt

我希望变量可用我的bash shell类似于pwd但是等于当前工作目录的一部分,而不是整个路径。

即,

$PWD=/a/b/c/d/e/f  
$PATH_SECT=c/d/e

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

我怎么能这样做?

2 个答案:

答案 0 :(得分:5)

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

一个简单的例子:

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

答案 1 :(得分:1)

您可以在alias

中使用.bashrc和一项功能
alias cd="supercd"  # call the function
function supercd(){
  builtin cd "$@"   # original cd
  PATH_SECT=$(pwd)  # or whatever
}