【发布时间】:2018-02-19 13:45:56
【问题描述】:
我想做一个在正文中使用环境变量的 curl 请求:
curl -XPUT http://${HOST}/create -d'{"user":"${USER}"}'
在这个请求中,${HOST} 被环境变量正确替换,但${USER} 不是。我该如何替换${USER}?
【问题讨论】:
-
如果你想让你的shell扩展
$USER,它不能在单引号内。尝试-d'{"user":"'"${USER}"'"}',但如果$USER来自不受信任的来源(或者可能包含"等),请务必小心。 -
谢谢,我正在测试它!
-d'{"user":"'${USER}'"}'也可以吗?我想了解您为什么添加了额外的"。 -
也许 - 我建议始终使用双引号将参数扩展括起来,除非您确实希望在结果上发生分词。即使我完全信任
$USER,使用双引号也有助于表明我的预期。 -
替代:
-d"{\"user\":\"${USER}\"}" -
我将不得不阅读这一点,因为我真的不明白你的意思是“除非你肯定希望在结果上发生分词”。也就是说,如果您将第一条评论粘贴到单独的答案中,我可以接受它作为答案,因为它有效!谢谢,不胜感激。
标签: linux curl environment-variables