Detenga la cadena entre comillas simples, siga con la expansión variable, posiblemente entre comillas dobles, y reanude la cadena entre comillas simples:
--data '{"text": "'"$variable"'"}'
($variable
aún debería expandirse a algo que, junto con el entorno, forme JSON legal, o de lo contrario, el otro lado probablemente no estará muy contento :) .)
Solo para poner una solución más aquí:
curl -X POST -u "apikey:${apikey}"
--header "Content-Type: application/json"
--data "{\"text\": \"${variable}\"}"
"${url}"
Básicamente, "
es una cita para manejar la siguiente cadena en conjunto, \"
escapa de la cita, y ${varname}
es una variable.
Tiendo a usar heredocs cuando construyo JSON para usar con curl:
curl -s -X POST $URL [email protected] <<EOF
[
{
"id": 101,
"text": "$variable"
}
]
EOF