envsubst:未设置变量的默认值

我有一个input.json类似于以下内容的json文件:


{

  "variable" : "${ENV_VAR}"

}

当然,我可以像下面这样从bash调用envsubst:


$ export ENV_VAR=myvalue

$ envsubst < input.json > output.json

$ cat output.json

{

  "variable" : "myvalue"

}

现在,我希望可以在ENV_VAR未设置的情况下为input.json中的变量设置默认值,就像下面的示例一样,不幸的是,在下面的示例中该示例无法正常工作:


$ cat input.json

{

  "variable" : "${ENV_VAR:=defaultvalue}"

}

$ export ENV_VAR=newvalue

$ envsubst < input.json > output.json

$ cat output.json

{

  "variable" : "${ENV_VAR:=defaultvalue}"

}

$ unset ENV_VAR

$ envsubst < input.json > output.json

$ cat output.json

{

  "variable" : "${ENV_VAR:=defaultvalue}"

}

很好奇的是,如果我像下面的示例一样执行envsubst(不涉及输入文件),则可以正常工作


$ export ENV_VAR=myvalue

$ echo "value is ${ENV_VAR:=defaultvalue}" | envsubst

value is myvalue

$ unset ENV_VAR

$ echo "value is ${ENV_VAR:=defaultvalue}" | envsubst

value is defaultvalue

文件哪里出问题了?


拉莫斯之舞
浏览 634回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP