4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravelの.envファイルをシェルスクリプトで読み込む

Posted at

はじめに

Laravelで使ってるDBに対して、BashでもDB接続して操作する必要があった。
設定を一括管理するためにもBashでLaravelの.envの設定を読み込むようにする。

DBはPostgreSQL11です。

内容

BashでPostgreSQLに接続 → データを取得 → 出力

#!/bin/bash

# .envから読み込み
DB_HOST=(`cat ../.env | grep DB_HOST | sed -e 's/DB_HOST=//'`)
DB_PORT=(`cat ../.env | grep DB_PORT | sed -e 's/DB_PORT=//'`)
DB_DATABASE=(`cat ../.env | grep DB_DATABASE | sed -e 's/DB_DATABASE=//'`)
DB_USERNAME=(`cat ../.env | grep DB_USERNAME | sed -e 's/DB_USERNAME=//'`)
DB_PASSWORD=(`cat ../.env | grep DB_PASSWORD | sed -e 's/DB_PASSWORD=//'`)

# PostgreSQLに接続
response=(`PGPASSWORD=${DB_PASSWORD_BO} /usr/pgsql-11/bin/psql -U ${DB_USERNAME_BO} -h ${DB_HOST_BO} -p ${DB_PORT_BO} ${DB_DATABASE_BO} -t  << EOF
SELECT * FROM tbl;
EOF
`)

# データがとれているか確認
for ((i = 0; i < ${#response[@]}; i++)) {
    echo ${response[$i]}
}

ちなみにですが、ヒアドキュメントを使ってPostgreSQLに接続する際の
パスワード設定の仕方を探すのに少し苦労しました。

おわりに

上の例の"DB_HOST"や"DB_PORT"の部分を.envで欲しい変数名に変えれば任意のところの値が取れますよー

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?