Экранирование символов в 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? Я не знаком с языком, поэтому не уверен, с чего начать. Замена'
с\'
сделал бы работу по крайней мере, я подозреваю.