di bashrc Anda atur ini:
PROMPT_COMMAND='[[ $PWD == "/foo/bar/" ]] && export FOO=BAR || unset FOO'
Isi variabel PROMPT_COMMAND akan dieksekusi setiap kali prompt Anda ditulis ulang (tepat sebelum ditulis sebenarnya) perintah di atas memeriksa variabel $PWD (yang menyimpan direktori kerja shell Anda saat ini) terhadap "/foo/bar" jika itu cocok dengannya mengekspor variabel Anda jika tidak maka variabel tersebut tidak disetel.
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]$
Jika Anda tidak keberatan menggunakan solusi, tambahkan ini ke .bash_profile Anda
mycd()
{
cd $1
if [ "$(pwd)" == "/your/folder/that/needs/env" ]; then
export RAILS_ENV=development
else
export RAILS_ENV=
fi;
}
alias cd=mycd
Setiap kali Anda pindah ke folder tertentu, ini akan mengatur variabel env Anda atau apa pun yang Anda inginkan
Pertama, AFAIK, bash tidak akan mencari .bashrc file di direktori lain selain rumah Anda -- setidaknya, bukan secara default.
Kedua, setelah menulis entri baru ke .bashrc Anda , Anda harus source .bashrc file, sehingga modifikasi terjadi.