config/env ファイルの変数にプレフィックスを追加する方法

config/env ファイルの変数にプレフィックスを追加する方法

私は次のような状況にあります。

source local.env
run_my_app

には、次のように具体的local.envに関連する環境変数がたくさんありますrun_my_app

es_protocol="http"
es_host=0.0.0.0
es_port=9200

mongo_protocol=mongodb+srv
mongo_host=foo.cluster.mongodb.net
mongo_port=80
mongo_user=foo

rabbit_protocol=ampq
rabbit_host=foo.rabbitmq.svc.cluster.local
rabbit_port=5672
rabbit_user=rabbitmq

ファイル内のすべての変数に重複して騒々しいプレフィックスを追加する代わりに、次のようにmy_appシェルプログラムを使用してプレフィックスを追加したいと思います。

source <(add_var_prefix 'my_app' local.env)  ## *note below

add_var_prefix次の2つのことを行うBash関数を実装する方法を知っている人はいますか?

  1. local.envファイル内のすべての変数にプレフィックスを追加する
  2. 変数をインポートする代わりに変数をエクスポートする
  • source <(xyz)何らかの奇妙な理由で、ソースコードがプロセスの交換で動作しないため、これは機能しません。

ベストアンサー1

以下は簡単な解決策ですsed

source <(sed 's/[^=]\+=/export my_app_&/' local.env)

私は、等号を含むすべての行が変数の割り当てであると仮定し、複数行の変数や同じ行の複数の割り当てなどの素晴らしい形式を考慮していないので、これを「素朴」と呼びます。

おすすめ記事