进入目录后执行bash功能

问题描述 投票:18回答:4

输入新目录时,我想执行特定的bash函数。有点像:

alias cd="cd $@ && myfunction"

$@在那里不起作用,添加反斜杠也无济于事。我也有点担心cd混乱,如果这适用于更改目录的其他命令(如pushdpopd),那会很好。

还有更好的别名/命令吗?

输入新目录时,我想执行特定的bash函数。像这样的东西:alias cd =“ cd $ @ && myfunction” $ @在那里不起作用,添加反斜杠也无济于事。我是...

bash function cd
4个回答
19
投票

我能想到的最简单的解决方案是这个>

myfunction() {
  if [ "$PWD" != "$MYOLDPWD" ]; then
    MYOLDPWD="$PWD";
    # strut yer stuff here..
  fi
}

export PROMPT_COMMAND=myfunction

20
投票

别名不接受参数。您应该使用一个函数。无需在每次发出提示时自动执行它。


7
投票

还有其他一些版本,包括


2
投票

我已经使用回调函数chpwd编写了ZSH脚本,以获取项目特定的ZSH配置。我不确定它是否可以与Bash一起使用,但是我认为值得一试。如果它不在您要访问的目录中找到脚本文件,它将检查父目录,直到找到要来源的脚本(或到达/)为止。从目录cd出来时,它还会调用函数unmagic,这使您可以在离开项目时清理环境。

© www.soinside.com 2019 - 2024. All rights reserved.