7

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

IE,

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

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

我怎么能这样做?

4

2 回答 2

5

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

一个简单的例子:

promptcmd(){
    local p=$(pwd)
    PATH_SECT=${p/\/a\/b\/}
}
于 2012-08-29T11:02:38.270 回答
1

你可以alias在你的 : 中使用一个和一个函数.bashrc

alias cd="supercd"  # call the function
function supercd(){
  builtin cd "$@"   # original cd
  PATH_SECT=$(pwd)  # or whatever
}
于 2012-08-29T12:34:51.977 回答