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)