如何在curl PUT请求的主体中使用环境变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在curl PUT请求的主体中使用环境变量?相关的知识,希望对你有一定的参考价值。

我想做一个使用body中环境变量的curl请求:

curl -XPUT http://${HOST}/create -d'{"user":"${USER}"}'

在此请求中,${HOST}被环境变量正确替换,但${USER}不是。我怎样才能更换${USER}

答案

Shell参数扩展不会在单引号内发生。您可以关闭单引号并为扩展启动新的双引号:

curl -XPUT http://${HOST}/create -d'{"user":"'"${USER}"'"}'

或者您可以使用双引号:

curl -XPUT http://${HOST}/create -d"{"user":"${USER}"}"

在这两种情况下,您都需要能够相信$USER不包含" - 您可能希望首先对其进行消毒:

# This is a Bash extension to POSIX
USER=${USER//"}

以上是关于如何在curl PUT请求的主体中使用环境变量?的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中使用 CURL 发出 PUT 请求

如何将此 curl 命令转换为 Ruby rest-client put 请求?

尝试在 node.js 中发出 PUT 请求

如何在带有 bash 的 CURL 请求中使用变量?

如何在不使用 CURL 的情况下运行 HTTP 请求

iOS:在这种情况下 put 请求如何工作?