如何在 curl 命令中使用 data-raw json 字符串中的变量

Posted

技术标签:

【中文标题】如何在 curl 命令中使用 data-raw json 字符串中的变量【英文标题】:How to use variables inside data-raw json string in a curl command 【发布时间】:2022-01-09 11:00:29 【问题描述】:

以下 curl 命令脚本适用于双引号字符串中的变量,但是如何在 --data-raw '...' 中使用变量(例如 ip_addressuser_id)?

#!/bin/sh

ip_address="10.0.0.1"
user_id="my-user-id"
websec_token="some_string"
version="v12"

curl -w @curl-format.txt \
    --request POST "http://example.com/$version/web" \
    --header "Authorization: Bearer $websec_token" \
    --header "Content-Type: application/json" \
    --data-raw '
        "ipAddress": "10.0.0.1",
        "userId": "my-user-id"
    '

【问题讨论】:

【参考方案1】:

只需转义双引号:

--data-raw "
    \"ipAddress\": \"$ip_address\",
    \"userId\": \"$user_id\"
"

【讨论】:

谢谢@dan!有效。我尝试转义 \" 在单引号内。 @Rafiq 是的。在 shell 中,变量不会在单引号内展开。单引号按字面意思保留所有内容,但其他单引号字符除外。

以上是关于如何在 curl 命令中使用 data-raw json 字符串中的变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中使用 cURL?

php如何执行linux的curl指令

如何在 Windows 中使用 curl 和 xampp?

Jenkinsfile/Groovy:为啥 curl 命令会导致“错误请求”

windows环境中如何安装配置curl工具

windows下使用curl命令 && 常用 curl 命令