我希望我的 bash shell 有一个可用的变量,类似于pwd
但等于当前工作目录的一部分,而不是整个路径。
IE,
$PWD=/a/b/c/d/e/f
$PATH_SECT=c/d/e
我有一个已经显示此路径的提示,但我想在每次更改目录时将环境中的变量更新为此值。
我怎么能这样做?
您可以使用该promptcmd
功能。从man bash
我们了解到,这个函数是在显示提示之前执行的。默认情况下它是空的(或者更确切地说,未定义)。
一个简单的例子:
promptcmd(){
local p=$(pwd)
PATH_SECT=${p/\/a\/b\/}
}
你可以alias
在你的 : 中使用一个和一个函数.bashrc
:
alias cd="supercd" # call the function
function supercd(){
builtin cd "$@" # original cd
PATH_SECT=$(pwd) # or whatever
}