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:
MSG=`git log -n 1 --format=oneline | grep -o ' .\+'`
który ustawia MSG na coś takiego:
Calendar can't go back past today
następnie
curl -i -X POST \
-H 'Accept: application/text' \
-H 'Content-type: application/json' \
-d "{'payload': {'message': '$MSG'}}" \
'https://example.com'
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.