en tu bashrc configura esto:
PROMPT_COMMAND='[[ $PWD == "/foo/bar/" ]] && export FOO=BAR || unset FOO'
El contenido de la variable PROMPT_COMMAND se ejecutará cada vez que se reescriba su solicitud (justo antes de que se escriba realmente). El comando anterior verifica la variable $PWD (que contiene el directorio de trabajo actual de su shell) contra "/foo/bar" si coincide, exporta su variable si no lo hace, entonces la variable no está configurada.
EG
[email protected]$ PROMPT_COMMAND='[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO'
[email protected]$ pwd
/home/peteches
[email protected]$ cd test
[email protected]$ pwd
/home/peteches/test
[email protected]$ env | grep FOO
6:FOO=BAR
73:PROMPT_COMMAND=[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO
[email protected]$ cd ../
[email protected]$ pwd
/home/peteches
[email protected]$ env | grep FOO
72:PROMPT_COMMAND=[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO
[email protected]$
Si no le importa usar una solución alternativa, agréguela a su .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
Cada vez que te muevas a una carpeta determinada, esto establecerá tu variable env o lo que quieras
Primero, AFAIK, bash
no buscará un .bashrc
archivo en cualquier otro directorio que no sea su hogar, al menos, no de forma predeterminada.
En segundo lugar, después de escribir nuevas entradas en su .bashrc
, deberías source .bashrc
el archivo, para que se produzcan modificaciones.