dans votre bashrc, définissez ceci :
PROMPT_COMMAND='[[ $PWD == "/foo/bar/" ]] && export FOO=BAR || unset FOO'
Le contenu de la variable PROMPT_COMMAND sera exécuté chaque fois que votre invite est réécrite (juste avant qu'elle ne soit écrite en fait) la commande ci-dessus vérifie la variable $PWD (qui contient le répertoire de travail actuel de votre shell) par rapport à "/foo/bar" si elle correspond exporte votre variable si ce n'est pas le cas, la variable n'est pas définie.
EX
example@unixlinux.online$ PROMPT_COMMAND='[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO'
example@unixlinux.online$ pwd
/home/peteches
example@unixlinux.online$ cd test
example@unixlinux.online$ pwd
/home/peteches/test
example@unixlinux.online$ env | grep FOO
6:FOO=BAR
73:PROMPT_COMMAND=[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO
example@unixlinux.online$ cd ../
example@unixlinux.online$ pwd
/home/peteches
example@unixlinux.online$ env | grep FOO
72:PROMPT_COMMAND=[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO
example@unixlinux.online$
Si cela ne vous dérange pas d'utiliser une solution de contournement, ajoutez-la à votre .bash_profile
mycd()
{
cd $1
if [ "$(pwd)" == "/your/folder/that/needs/env" ]; then
export RAILS_ENV=development
else
export RAILS_ENV=
fi;
}
alias cd=mycd
Chaque fois que vous vous déplacez vers un certain dossier, cela définira votre variable d'environnement ou ce que vous voulez
Tout d'abord, autant que je sache, bash ne recherchera pas un .bashrc file dans n'importe quel autre répertoire que votre home -- du moins, pas par défaut.
Deuxièmement, après avoir écrit de nouvelles entrées dans votre .bashrc , vous devriez source .bashrc le fichier, afin que les modifications aient lieu.