我有一个包含一些$ VARIABLES的文件,我想使用envsubst工具替换它。但就我而言,该工具仅替换了+/-一半的变量。
为说明: 我有一个带有某些变量的文件 .env :
MODE=HTTP
URL=https://some.url:0000/xyz
我用
$ source .env
现在,当两个变量都被设置时,envsubst只能正确使用MODE
echo $MODE
HTTP
echo 'mode: $MODE' | envsubst
mode: HTTP
echo $URL
https://some.url:0000/xyz
echo 'url: $URL' | envsubst
url:
有什么想法为什么envsubst不适用于所有变量?
答案 0 :(得分:2)
我猜想它只是偶然地为$MODE
工作-因为您的外壳中有一个导出的$MODE
变量。
为了使envsubst
起作用,它需要从您的shell继承环境变量,这仅适用于export
ed变量。
如果您的.env
文件导出变量,它将起作用:
MODE=HTTP
URL=https://some.url:0000/xyz
export MODE
export URL