मैं गिट का उपयोग कर रहा हूं, फिर सर्वर पर जेएसओएन पेलोड के रूप में प्रतिबद्ध संदेश और अन्य बिट्स पोस्ट कर रहा हूं।बैश में वर्णों से बचने (JSON के लिए)
वर्तमान में मेरे पास है:
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 क्षेत्रों में से एक और जोड़ी है:
MSG=`git log -n 1 --format=oneline | grep -o ' .\+'`
जो की तरह कुछ करने के लिए एमएसजी सेट।
यह ठीक काम करता है, लेकिन निश्चित रूप से जब मेरे पास एक एडिट्रोफ़ के साथ उपरोक्त एक प्रतिबद्ध संदेश है, तो JSON अमान्य है।
मैं बैश में आवश्यक पात्रों से कैसे बच सकता हूं? मैं भाषा से परिचित नहीं हूं, इसलिए मुझे यकीन नहीं है कि कहां से शुरू करना है। के साथ '
को प्रतिस्थापित करने पर कम से कम मुझे संदेह होगा।
एक अतिरिक्त नोट के रूप में, JSON डबल (एकल नहीं) का उपयोग करने के लिए ऊपर अस्वीकार होगा मूल्यों, इतने सारे (लेकिन सभी नहीं) पारसर्स के आसपास उद्धरण माना जाता है, भले ही यह संरचना की दृष्टि से ध्वनि और तों था ठीक से caped। – polm23