Uciekające znaki w bashu (dla JSON)

Używam git, a następnie umieszczam komunikat zatwierdzenia i inne bity jako ładunek JSON na serwerze.

Obecnie mam:

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

który ustawia MSG na coś takiego:

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

następnie

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

Mój prawdziwy JSON ma jeszcze kilka pól.

Działa to dobrze, ale oczywiście, gdy mam komunikat zatwierdzenia, taki jak powyżej z apostrofem, JSON jest nieprawidłowy.

Jak mogę uniknąć znaków wymaganych w bashu? Nie znam języka, więc nie wiem od czego zacząć. Zastępuje' z\' podejrzewam, że wykonałaby to co najmniej.

questionAnswers(10)

yourAnswerToTheQuestion