YAML 텍스트 파일에서 구문 분석된 환경 변수 내보내기

YAML 텍스트 파일에서 구문 분석된 환경 변수 내보내기

YAML 파일에 일부 환경 변수를 선언했습니다. 예를 들면 다음과 같습니다.

runtime: python37

env_variables:
  API_URL: 'https://fake.api.com/'
  API_USERNAME: '[email protected]'
  API_PASSWORD: 'Passwooord'

스크립트를 사용하여 환경 변수로 내보내고 싶습니다. 올바른 구문을 에코할 수 있지만 여전히 내보낼 수는 없습니다.

sed -nr '/env_variables:/,$ s/  ([A-Z_]+): (.*)/\1=\2/ p' app.yaml | while read assign; do echo $assign; done

이는 다음과 관련이 있습니다.이것제 경우에는 변수 이름도 파이프됩니다.

답변1

sed명령이 형식의 행을 올바르게 출력한다고 가정하면 var=value다음을 수행할 수 있습니다.

while read assign; do
 export "$assign"; 
done < <(sed -nr '/env_variables:/,$ s/  ([A-Z_]+): (.*)/\1=\2/ p' app.yaml)

또는 내보낼 필요가 없고 입력이 상당히 안전한 경우(셸 구문 없음)

. <(sed -nr '/env_variables:/,$ s/  ([A-Z_]+): (.*)/\1=\2/ p' app.yaml)

관련 정보