この記事でわかること
-
.envファイルに書かれた変数をまとめて環境変数に反映する方法 -
set -a/set +aの役割 - 注意点(export漏れ対策)
背景
アプリの設定値を .env にまとめていたのですが、
反映するときに
export VAR1=value
export VAR2=value
...
と1つずつ書くのが面倒すぎました。
そこで調べたところ、以下の方法がとても便利でした👇
✅ .envを一括で環境変数に読み込むコマンド
``bash
set -a # 以降の source で読み込んだ変数を自動export
source .env.server # ← これで中の変数が一括で環境変数になる
set +a
📌 ポイント
- `set -a` : **以降に読み込んだ変数を自動で export**
- `source` : ファイルに書いてある変数を **現在のシェルで実行**
- `set +a` : 自動exportを **オフに戻す**
つまり、
envファイルをexportいらずで読み込める🎉
---
## `.env.server` の例
API_KEY=abcde12345
DB_HOST=localhost
DB_USER=test
DB_PASS=secret
これらが一括で環境変数化されます。
---
## ✅ 反映確認
``bash
echo $API_KEY
echo $DB_HOST
値が表示されればOKです ✅
ちなみに:.env の中に export は不要
よく .env にこう書いてしまいがち👇
export API_KEY=abcde
source だけならありですが、
今回の方法では 不要です。
🌟
.envの中はKEY=value形式だけでOK!
注意点(大事)
- 現在のシェルにのみ有効(再起動したら消える)
- 引用符・スペースがある値は
"..."推奨 -
sourceは信頼できるファイルに対してのみ実行してください
まとめ(これだけ!)
| 操作 | コマンド |
|---|---|
| 自動exportオン | set -a |
| env一括読み込み | source .env.server |
| 自動exportオフ | set +a |
.envを一括反映させたいとき、ぜひ使ってください!🙌