2つのenvファイルがあります。 1つはデフォルト値.env
、もう1つはです.env.overwrite
。
実行してパラメータを指定するときは、次のスクリプトファイルが必要です。
./rebuild_env .env .env.overwrite
.env
の各キー値をのキーで上書きします.env.overwrite
。一部のキーが存在しない場合、.env.overwrite
デフォルト値は保持されます。たとえば、
ファイルの場合.env
:
VALUE1=default_value1
VALUE2=default_value2
VALUE3=default_value3
そして.env.overwrite
ファイルから:
VALUE1=new_value1
VALUE3=new_value3
スクリプトを実行した後、.env
ファイルは次のようになります。
VALUE1=new_value1
VALUE2=default_value2
VALUE3=new_value3
私は今3日間インターネットで調査しようとしましたが、私のニーズに合ったものが見つかりませんでした。誰でも私を案内してもらえますか?あなたの助けに本当に感謝します。
ベストアンサー1
最も簡単な解決策は、2つのファイルをリンクすることです。
cat .env .env.overwrite > .env.new
これにより、最後に更新された項目がアクティブな項目になります。これで、すべての重複エントリを削除できます。
注文やその他のコメントが重要でない場合:
for variable in \
$(cut -d= -f1 .env.overwrite .env | sort |uniq) ;
do
grep ^${variable}= .env.overwrite || \
grep ^${variable}= .env ;
done