2010-05-06 55 views
0

如果我在我的主目录的.profile中导出BLA =“hey there”,如何稍后在其他目录中将其更改为仅通过cd到另一个目录中? 另外,有没有办法只是设置一个新的环境变量,当我进入一个目录。如何根据目录设置环境变量

我的第一次尝试是在我想要更改的目录中创建另一个.bashrc文件,但显然证明效果不佳。

我在OS X btw上。

回答

2

为什么你需要这样做?只是好奇。

但是你可以重写cd和你的.bashrc做一些额外的处理:

cd() { 
    builtin cd "[email protected]" 
    if [[ `pwd` == '/path/to/dir' ]]; then 
     export VAR=blah 
    ]] 
} 

您添加后,不要忘了,开始通过新的bash shell或源吧:

source ~/.bashrc 
+0

我想这样做的原因是为了有不同的值以用于不同的Rails应用的变量。不同的应用程序可能会使用相同的变量,但它们需要特定于它们的值。 – kjs3 2010-05-07 04:12:33

+0

@ kjs3如果您认为它是“正确的”或者它帮助您实现了目标,请用复选标记标记我的答案。谢谢! – dlamotte 2010-05-07 04:17:34

0

基于xyld的答案,这可以让你做可怕的.bashrc在任何目录的东西。我敢肯定,这是一个非常可怕的想法:

cd() { 
    builtin cd "[email protected]" 
    if [[ -e `pwd`/.supplemental-bashrc ]]; then 
     source `pwd`/.supplemental-bashrc 
    fi 
} 
+0

哈,是的,你绝对可以做到这一点。绝对是非常可怕的 – dlamotte 2010-05-07 02:14:13