यह बाश मैनुअल के संबंधित अनुभाग में बहुत अच्छी तरह से समझाया गया है । संक्षेप में, एकल उद्धरणों के भीतर किसी भी चीज की शाब्दिक व्याख्या की जाती है। इसलिए, उदाहरण के लिए:
$ echo '$SHELL'
$SHELL
$ echo '{1..3}'
{1..3}
इसकी तुलना अनकोटूट किए गए संस्करणों से करें:
$ echo $SHELL
/bin/bash
$ echo {1..3}
1 2 3
दोहरे उद्धरण परिवर्तनशील विस्तार की अनुमति देते हैं (इतिहास विस्तार और कुछ अन्य चीजें भी)। मूल रूप से, आप उनका उपयोग तब करते हैं जब आप किसी ऐसी चीज से निपट रहे होते हैं जिसे आप विस्तारित देखना चाहते हैं। उदाहरण के लिए:
$ echo "$SHELL"
/bin/bash
$ echo "!!"
echo "echo "$SHELL""
echo /bin/bash
दूसरे शब्दों में, एकल उद्धरण पूरी तरह से शेल से एक स्ट्रिंग की रक्षा करते हैं जबकि दोहरे उद्धरण कुछ चीजों (उदाहरण के लिए रिक्त स्थान) की रक्षा करते हैं, लेकिन चर और विशेष वर्णों को सही ढंग से विस्तारित / व्याख्या करने की अनुमति देते हैं।
\
हमेशा एकल उद्धरण में संलग्न होने पर शाब्दिक रूप से व्यवहार किया जाता है, भले ही यह पहले से हो'
। एक उद्घाटन के बाद'
, अगले'
को हमेशा समापन उद्धरण के रूप में व्याख्या की जाती है।'
एकल-उद्धृत स्ट्रिंग में उद्धृत करने,'
व्यक्तिगत रूप से भागने , और फिर से उद्धृत करना शुरू करने से कुछ हासिल किया जा सकता है । यही है, जबकि पात्रों को\'
खोलने और बंद करने के बीच काम नहीं करता है'
,'\''
करता है। ( मेरे एक पोस्ट पर गिल्स का सुधार देखें जब मैंने विवरण के लिए एक ही गलती की होगी ।)