我希望变量可用我的bash shell类似于pwd
但是等于当前工作目录的一部分,而不是整个路径。
即,
$PWD=/a/b/c/d/e/f
$PATH_SECT=c/d/e
我有一个显示此路径的提示,但我想在每次更改目录时将环境中的变量更新为此值。
我怎么能这样做?
答案 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
}