설명
- 지정한 env 파일에 원하는 키가 존재하는 라인을 찾아, 원하는 값으로 설정(
key=value) 꼴
- key가 존재하지 않으면 해당 설정을 신규 라인으로 추가
- key가 존재하고 value가 다르면 원하는 value로 변경
스크립트 예제
2>/dev/null 를 통해, 해당 env 파일이 존재하지 않더라도 에러를 무시함
# .env 파일에 COMPOSE_PROFILES=errors-only 설정
_TARGET_ENV_FILE_=".env"
_TARGET_ENV_KEY_="COMPOSE_PROFILES"
_TARGET_ENV_VAL_="errors-only"
if grep -q "^${_TARGET_ENV_KEY_}=" "${_TARGET_ENV_FILE_}" 2>/dev/null; then
sed -i "s/^${_TARGET_ENV_KEY_}=.*/${_TARGET_ENV_KEY_}=${_TARGET_ENV_VAL_}/" "${_TARGET_ENV_FILE_}"
else
echo "${_TARGET_ENV_KEY_}=${_TARGET_ENV_VAL_}" >> "${_TARGET_ENV_FILE_}"
fi