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 example@unixlinux.online <<EOF
[
{
"id": 101,
"text": "$variable"
}
]
EOF