Environment-Variables

導出從 YAML 文本文件解析的環境變數

  • September 5, 2019

我在 YAML 文件中聲明了一些環境變數,例如:

runtime: python37

env_variables:
 API_URL: 'https://fake.api.com/'
 API_USERNAME: 'fake@email.com'
 API_PASSWORD: 'Passwooord'

我想用腳本將這些導出到環境變數,我可以回顯正確的語法,但我仍然無法導出它們。

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

與我的情況不同,因為在我的情況下,變數名也通過管道傳遞。

假設sed命令正確輸出表單的行var=value,您可以執行以下操作:

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

或者,如果您不需要導出,並且輸入相當安全(無 shell 語法),

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

引用自:https://unix.stackexchange.com/questions/539009