1

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

4

1 回答 1

3

我猜它只是$MODE偶然的工作——因为你$MODE的 shell 中有一个导出的变量。

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

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

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

export MODE
export URL
于 2019-06-15T13:50:22.560 回答