Я использую git, а затем отправляю сообщение фиксации и другие биты в качестве полезной нагрузки JSON на сервер.
В настоящее время у меня есть:
MSG=`git log -n 1 --format=oneline | grep -o ' .\+'`
который устанавливает MSG в нечто вроде:
Calendar can't go back past today
затем
curl -i -X POST \
-H 'Accept: application/text' \
-H 'Content-type: application/json' \
-d "{'payload': {'message': '$MSG'}}" \
'https://example.com'
В моем реальном JSON есть еще несколько полей.
Это отлично работает, но, конечно, когда у меня есть сообщение фиксации, такое как выше, с апострофом в нем, JSON недействителен.
Как я могу избежать символов, требуемых в bash? Я не знаком с языком, поэтому не знаю, с чего начать. Замена '
на \'
выполнила бы работу, как я подозреваю.