Ferma la stringa tra virgolette singole, segui con l'espansione della variabile, possibilmente tra virgolette doppie, e riprendi la stringa tra virgolette singole:
--data '{"text": "'"$variable"'"}'
($variable
dovrebbe ancora espandersi in qualcosa che insieme all'ambiente circostante forma JSON legale, altrimenti l'altra parte probabilmente non sarà molto contenta :) .)
Solo per mettere un'altra soluzione qui:
curl -X POST -u "apikey:${apikey}"
--header "Content-Type: application/json"
--data "{\"text\": \"${variable}\"}"
"${url}"
Fondamentalmente, "
è una citazione per gestire insieme la seguente stringa, \"
evade la citazione e ${varname}
è una variabile.
Tendo a usare heredocs quando creo JSON da usare con curl:
curl -s -X POST $URL [email protected] <<EOF
[
{
"id": 101,
"text": "$variable"
}
]
EOF