Escapar de caracteres en bash (para JSON)

Estoy usando git, luego publico el mensaje de confirmación y otros bits como una carga JSON en un servidor.

Actualmente tengo:

<code>MSG=`git log -n 1 --format=oneline | grep -o ' .\+'`
</code>

que establece MSG a algo como:

<code>Calendar can't go back past today
</code>

entonces

<code>curl -i -X POST \
  -H 'Accept: application/text' \
  -H 'Content-type: application/json' \
  -d "{'payload': {'message': '$MSG'}}" \
  'https://example.com'
</code>

Mi verdadero JSON tiene otro par de campos.

Esto funciona bien, pero por supuesto, cuando tengo un mensaje de confirmación como el de arriba con un apóstrofe, el JSON no es válido.

¿Cómo puedo escapar de los personajes requeridos en bash? No estoy familiarizado con el idioma, así que no estoy seguro de por dónde empezar. Reemplazo' con\' Haría el trabajo al mínimo, sospecho.

Respuestas a la pregunta(10)

Su respuesta a la pregunta