सिंगल-कोट्स के अंदर, शेल कुछ भी नहीं फैलता है। इसके बजाय उन्हें दोहरे उद्धरणों के अंदर रखें:
curl -u <my-api-token>: \
-X POST https://api.pushbullet.com/v2/pushes \
--header 'Content-Type: application/json' \
--data-binary '{"type": "note", "title": "'"$TR_TORRENT_NAME"'", \
"body": "'"$TR_TORRENT_NAME completed"'."}'
आइए देखें कि यह कैसे काम करता है:
$ TR_TORRENT_NAME=MyTorrent
$ echo '{"type": "note", "title": "'"$TR_TORRENT_NAME"'", "body": "'"$TR_TORRENT_NAME completed"'."}'
{"type": "note", "title": "MyTorrent", "body": "MyTorrent completed."}
जब शेल वैरिएबल दिखाई देता है, तो यह हमेशा डबल-कोट्स के अंदर होता है। नतीजतन, यह ठीक से विस्तारित है।
इस तरह उद्धृत करना थोड़ा सूक्ष्म है। हमारे पास एकल-उद्धृत स्ट्रिंग्स हैं जिनमें दोहरे-उद्धरण वर्ण के रूप में हैं और दोहरे-उद्धृत स्ट्रिंग्स के बगल में हैं। इसे बेहतर समझने के लिए, आइए इस टुकड़े को एक उदाहरण के रूप में लेते हैं:
"'"$TR_TORRENT_NAME"'"
प्रत्येक चरित्र को बदले में लेना:
"
एक शाब्दिक डबल-उद्धरण वर्ण है जो एकल-उद्धृत स्ट्रिंग के अंदर है। (संक्षिप्तता के लिए, इस खंड की शुरुआत इस टुकड़े में नहीं दिखाई गई है।)
'
एकल-उद्धृत स्ट्रिंग बंद कर देता है।
"
एक डबल-उद्धृत स्ट्रिंग खोलता है।
$TR_TORRENT_NAME
एक शेल वैरिएबल है जो डबल-कोट्स के अंदर विस्तारित है।
"
डबल-उद्धृत स्ट्रिंग बंद कर देता है।
'
एक नया एकल-उद्धृत स्ट्रिंग खोलता है।
"
एकल-उद्धृत स्ट्रिंग के अंदर एक दोहरे-उद्धरण वर्ण रखता है।