进入某个目录时自动运行命令?

进入某个目录时自动运行命令?

我在用着因此我要说两个不同的目录:

~/Development/site1
~/Development/site2

因此,为了设置我的环境,我通常会先~/Development/site1运行source bin/activate。当我进入其中一个目录时,是否可以自动运行该命令?

答案1

您可以将其放入 .bashrc 中以重新定义“cd”命令:

cd()
{
    [ -z "$*" ] && builtin cd $HOME
    [ -n "$*" ] && builtin cd "$*"
    [ -f "./bin/activate" && source ./bin/activate
}

答案2

bash 别名就够了吗?还是必须链接到进入特定目录?

我对 bash 别名的解决方案。

在 ~/.bashrc 中检查 .bash_aliases 是否运行。

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

在 ~/.bash_aliases 中

alias siteone='cd ~/Development/site1 && source bin/activate'
alias sitetwo='cd ~/Development/site2 && source bin/activate'

相关内容