Google के माध्यम से यहां आने वाले किसी भी व्यक्ति के लिए बस एक त्वरित नोट / सारांश शीर्षक में पूछे गए सामान्य प्रश्न के उत्तर की तलाश में है (जैसा कि मैं था)। निम्नलिखित में से कोई भी उद्धरण के अंदर शेल चर तक पहुंच प्राप्त करने के लिए काम करना चाहिए:
echo "$VARIABLE"
echo "${VARIABLE}"
एकल उद्धरणों का उपयोग मुख्य मुद्दा है। बैश संदर्भ मैनुअल के अनुसार :
एकल उद्धरण में वर्ण संलग्न करना ( '
) उद्धरणों के भीतर प्रत्येक वर्ण के शाब्दिक मूल्य को संरक्षित करता है। एकल उद्धरण के बीच एक एकल उद्धरण नहीं हो सकता है, तब भी जब एक बैकस्लैश द्वारा पूर्ववर्ती हो। [...] दोहरे उद्धरण चिह्नों में संलग्न वर्ण ( "
) के अपवाद के साथ उद्धरण के भीतर सभी पात्रों का शाब्दिक मूल्य को बरकरार रखता है, $
, `
, \
, और, जब इतिहास विस्तार सक्षम किया गया है, !
। अक्षर $
और `दोहरे उद्धरणों के भीतर अपने विशेष अर्थ को बनाए रखते हैं (शैल विस्तार देखें)। जब निम्न पात्रों में से एक के बाद बैकस्लैश केवल अपने विशेष अर्थ को बरकरार रखे हुए: $
, `
, "
,\
, या न्यूलाइन। दोहरे उद्धरण चिह्नों के भीतर, इन वर्णों में से एक के बाद आने वाले बैकस्लैश हटा दिए जाते हैं। एक विशेष अर्थ के बिना वर्णों के पूर्ववर्ती बैकस्लैम को अनमॉडिफाइड छोड़ दिया जाता है। एक दोहरे उद्धरण को दोहरे उद्धरण के भीतर उद्धृत किया जा सकता है, इसे एक बैकस्लैश के साथ पूर्ववर्ती करके। यदि सक्षम है, तो इतिहास विस्तार तब तक किया जाएगा जब तक कि !
दोहरे उद्धरण चिह्नों में एक बैकस्लैश का उपयोग करके भाग न जाए। बैकस्लैश पूर्ववर्ती को !
हटाया नहीं गया है। विशेष पैरामीटर *
और @
विशेष अर्थ है जब दोहरे उद्धरण में (शेल पैरामीटर विस्तार देखें)।
प्रश्न में पूछे गए विशिष्ट मामले में, $ COLUMNS एक विशेष चर है, जिसमें अमानक गुण होते हैं (ऊपर lunath का उत्तर देखें)।