GNU/Linux >> Belajar Linux >  >> Linux

Tetapkan variabel lingkungan di direktori tertentu

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.


Linux
  1. 7 Contoh Praktis Perintah cd di Linux

  2. Variabel "Bersarang" di bash

  3. Bagaimana cara mengatur direktori kerja dari proses induk?

  1. Setel prompt terminal di Ubuntu untuk hanya menampilkan nama direktori kerja alih-alih path lengkapnya

  2. direktori rsync sehingga semua perubahan muncul secara atomik

  3. Bagaimana cara mencetak variabel lingkungan yang tampaknya tersembunyi?

  1. Menggunakan Variabel Lingkungan Dalam File Tmux.conf?

  2. Tetapkan nama pengirim dalam fungsi email

  3. Bagaimana cara meneruskan ssh dengan AllowTcpForwarding diatur ke no?