作業ディレクトリごとに自動で環境変数を設定するさまざまなプロジェクトのソースコードを扱っていると、プロジェクトに応じて環境変数を切り替えたいことがあります。(日本語訳)などでも取り上げられているように、アプリやシステムの設定に環境変数を使うことが多いです。その環境変数を毎回設定するにしても手間ですし忘れがちです。.bashrcなどに全部設定しロードしておくこともできますが、プロジェクトが増えてくると煩雑になり困ります。そのような時に使えるのがdirenvです。中心となりますが、環境変数を自動的に切り替えてくれる素晴らしい機能を提供してくれます。本記事の開発環境は以下となります。用の環境スイッチャーで、現在のディレクトリに応じて環境変数をロードまたはアンロードしてくれます。この一文で語りつくされているのではないでしょうか。(私の序文は長くて冗長だった。デフォルトで入っていないのでインストールします。direnv~/.bashrcに以下の設定をします。bash)"設定ファイルを記述するためのエディターを環境変数EDITORに設定します。今回はviとしました。上記設定を読み込みます。環境変数を設定したいディレクトリで.envrcファイルを作り、exportで環境変数の定義を書きます。[path]でエディターを起動し、設定を保存します。MSG=Helloエディターを保存して終了すると、そのディレクトリに.envrcファイルが作られます。以下のように設定を読み込んだとのメッセージが出力されます。環境変数を確認すると、確かに読み込まれています。$MSGHelloディレクトリを出ていくと、以下のようにアンロードしたとのメッセージが出力され、また入ると読み込まれます。ディレクトリに応じて自動的に環境変数が切り替わっているのがわかります。読み込まれているあとは、必要なディレクトリごとに.envrcを用意します。edit以外の方法で.envrcが作られたり変更されると、はじめて.envrcを読み込む際にエラーが表示されます。editを使ったとしても)もエラーが表示されます。これは自分が明示的に編集した.envrcではない場合に、自動で読み込むと危険だからです。allowを実行します。ソースコード管理の対象にしないよう注意が必要です。direnv、一度設定すれば後は無意識に切り替えてくれるので助かります。2017Riotz.works投稿や発言は私的なものであり、所属する企業や組織には関係ありません。HomeSlides。