我有一个 curl 命令将一串文本发送到服务器,我一直在试图弄清楚如何让文本字符串来自文件或来自 bash 变量。该命令如下所示:
curl -X POST -u "apikey:<apikey>"
--header "Content-Type: application/json"
--data '{"text": "<variable>"}'
"<url>"
Run Code Online (Sandbox Code Playgroud)
我不知道如何在那里获取变量。我试过用 $variable 和 $(< file) 替换,但我不知道如何让它们在没有回声的情况下吐出文本,而且我无法在卷曲中回声。
PSk*_*cik 14
停止单引号字符串,跟随变量扩展,可能是双引号,并恢复单引号字符串:
--data '{"text": "'"$variable"'"}'
Run Code Online (Sandbox Code Playgroud)
($variable仍然应该扩展到与周围环境一起形成合法 JSON 的内容,否则对方可能不会很高兴:)。)
小智 5
只是在这里再放一个解决方案:
curl -X POST -u "apikey:${apikey}"
--header "Content-Type: application/json"
--data "{\"text\": \"${variable}\"}"
"${url}"
Run Code Online (Sandbox Code Playgroud)
基本上,"是一个引号来处理以下字符串,\"转义引号,并且${varname}是一个变量。
在构建用于 curl 的 JSON 时,我倾向于使用heredocs:
curl -s -X POST $URL -d@- <<EOF
[
{
"id": 101,
"text": "$variable"
}
]
EOF
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12251 次 |
| 最近记录: |