2개의 env 파일이 있습니다. 하나는 기본값 .env
이고 다른 하나는 입니다 .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
가장 간단한 해결책은 두 파일을 연결하는 것입니다.
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