あなたのbashrcにこれを設定してください:
PROMPT_COMMAND='[[ $PWD == "/foo/bar/" ]] && export FOO=BAR || unset FOO'
PROMPT_COMMAND 変数の内容は、プロンプトが書き換えられるたびに (実際に書き込まれる直前に) 実行されます一致しない場合は変数をエクスポートし、変数は設定解除されます。
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]$
回避策を使用しても構わない場合は、これを .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
する必要があります