envsubst仅适用于部分变量

时间:2019-06-15 13:34:38

标签: linux environment-variables envsubst

我有一个包含一些$ 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不适用于所有变量?

1 个答案:

答案 0 :(得分:2)

我猜想它只是偶然地为$MODE工作-因为您的外壳中有一个导出的$MODE变量。

为了使envsubst起作用,它需要从您的shell继承环境变量,这仅适用于export ed变量。

如果您的.env文件导出变量,它将起作用:

MODE=HTTP
URL=https://some.url:0000/xyz

export MODE
export URL
相关问题