Arrêtez la chaîne entre guillemets simples, suivez le développement de la variable, éventuellement entre guillemets doubles, et reprenez la chaîne entre guillemets simples :
--data '{"text": "'"$variable"'"}'
($variable
devrait toujours s'étendre à quelque chose qui, avec l'environnement, forme du JSON légal, sinon l'autre côté ne sera probablement pas très content :) .)
Juste pour mettre une solution de plus ici :
curl -X POST -u "apikey:${apikey}"
--header "Content-Type: application/json"
--data "{\"text\": \"${variable}\"}"
"${url}"
En gros, "
est un guillemet pour gérer ensemble la chaîne suivante, \"
échappe le guillemet, et ${varname}
est une variable.
J'ai tendance à utiliser heredocs lors de la construction de JSON à utiliser avec curl :
curl -s -X POST $URL [email protected] <<EOF
[
{
"id": 101,
"text": "$variable"
}
]
EOF