あなたのbashrcにこれを設定してください:
PROMPT_COMMAND='[[ $PWD == "/foo/bar/" ]] && export FOO=BAR || unset FOO'
PROMPT_COMMAND 変数の内容は、プロンプトが書き換えられるたびに (実際に書き込まれる直前に) 実行されます一致しない場合は変数をエクスポートし、変数は設定解除されます。
EG
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$
回避策を使用しても構わない場合は、これを .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
特定のフォルダーに移動するたびに、これにより環境変数または必要なものが設定されます
まず、私の知る限り、bash .bashrc を検索しません あなたのホーム以外のディレクトリにあるファイル -- 少なくとも、デフォルトではありません。
次に、 .bashrc に新しいエントリを書き込んだ後 、 source .bashrc する必要があります