首页 > 解决方案 > 如何使用 curl 发布文件,替换环境变量

问题描述

如何使用 curl 和/或 bash 发布文件,替换 env 变量。

假设我有这样的 test.json (我可以编辑其格式):

{
  "name": "'"$NAME_VAR"'"
}

如何通过 curl 发布此文件,同时替换任何 env 变量?

发布不带替换的 test.json 文件的示例 curl:

curl -X POST -H 'Content-Type: application/json' --data-binary @test.json http://test-server/some/path

标签: jsonbashcurlenvironment-variables

解决方案


这似乎是一个XY 问题。即使不是,问题也没有明确说明。解决方案是否必须支持任意 var 名称或者它们是否已知?这些值是否可以包含在插入 JSON 文本时需要正确转义的引号?为什么 JSON 文本包含这种不寻常的引用:

"name": "'"$NAME_VAR"'"

如果可以将其更改为 env var 名称两侧的单个双引号,并且 env var 值不包含引号,那么该envsubst命令是最简单的解决方案。


推荐阅读