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.