GNU/Linux >> Linux の 問題 >  >> Linux

特定のディレクトリに環境変数を設定する

あなたの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 する必要があります


Linux
  1. bash で変数を「入れ子にする」

  2. 親プロセスの作業ディレクトリを設定するにはどうすればよいですか?

  3. 一時的な環境を設定する ($PATH)

  1. すべての変更がアトミックに表示される rsync ディレクトリ

  2. メール機能に差出人名を設定する

  3. AllowTcpForwarding を no に設定して ssh 転送する方法は?

  1. Linuxで$PATH変数を永続的に設定する方法を学ぶ

  2. Tmux.confファイルで環境変数を使用していますか?

  3. Linuxでのcdコマンドの7つの実用例