我想做一个使用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//\"}