【问题标题】:How to use curl to post a file, substituting env variables如何使用 curl 发布文件,替换环境变量
【发布时间】:2021-12-01 12:31:46
【问题描述】:

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

假设我有这样的 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

【问题讨论】:

标签: json bash curl environment-variables


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,我最终使用了 envsubst。具体来说,我使用它来替换任何/仅定义的 env 变量:` envsubst "`printf '${%s} ' $(sh -c "env|cut -d'=' -f1")`" test2.json `关于:`解决方案是否必须支持任意变量名称或者它们是先验已知的? ` 是,如指定 (how can I post this file via curl, while substituting any env variable?) ` 值是否可以包含在插入 JSON 文本时需要正确转义的引号` 是,如指定 (which I can edit the format of)
猜你喜欢
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 2018-09-09
  • 2016-06-05
  • 2016-02-02
  • 2019-07-27
相关资源
最近更新 更多