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.