Экранирование символов в bash (для JSON)

Я использую git, затем отправляю сообщение фиксации и другие биты в качестве полезной нагрузки JSON на сервер.

В настоящее время у меня есть:

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

который устанавливает MSG что-то вроде:

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

затем

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

У моего настоящего JSON есть еще пара полей.

Это прекрасно работает, но, конечно, когда у меня есть сообщение коммита, такое как приведенное выше, с апострофом, JSON недействителен.

Как я могу избежать символов, необходимых в bash? Я не знаком с языком, поэтому не уверен, с чего начать. Замена' с\' сделал бы работу по крайней мере, я подозреваю.

Ответы на вопрос(10)

Ваш ответ на вопрос