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