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

问题描述 投票:0回答:1

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

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

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

linux curl environment-variables
1个回答
-1
投票

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//\"}
© www.soinside.com 2019 - 2024. All rights reserved.