Stoppen Sie die Zeichenfolge in einfachen Anführungszeichen, folgen Sie der Variablenerweiterung, möglicherweise in doppelten Anführungszeichen, und setzen Sie die Zeichenfolge in einfachen Anführungszeichen fort:
--data '{"text": "'"$variable"'"}'
($variable
sollte immer noch zu etwas erweitert werden, das zusammen mit der Umgebung legales JSON bildet, sonst wird die andere Seite wahrscheinlich nicht sehr glücklich sein :) .)
Nur um hier noch eine Lösung zu setzen:
curl -X POST -u "apikey:${apikey}"
--header "Content-Type: application/json"
--data "{\"text\": \"${variable}\"}"
"${url}"
Grundsätzlich "
ist ein Anführungszeichen, um die folgende Zeichenfolge zusammen zu verarbeiten, \"
maskiert das Anführungszeichen und ${varname}
ist eine Variable.
Ich neige dazu, Heredocs zu verwenden, wenn ich JSON für die Verwendung mit Curl erstelle:
curl -s -X POST $URL [email protected] <<EOF
[
{
"id": 101,
"text": "$variable"
}
]
EOF