तीन उद्धरण तंत्र हैं: बच चरित्र , एकल उद्धरण, और दोहरे उद्धरण।
एक गैर-उद्धृत बैकस्लैश ( \ )
बच चरित्र है । यह <newline> के अपवाद के साथ आने वाले अगले वर्ण के शाब्दिक मूल्य को संरक्षित करता है। यदि एक \ <newline> जोड़ी दिखाई देती है, और बैकस्लैश स्वयं उद्धृत नहीं किया जाता है, तो \ <newline> को एक लाइन निरंतरता के रूप में माना जाता है (अर्थात, इसे इनपुट स्ट्रीम से हटा दिया जाता है और प्रभावी रूप से अनदेखा किया जाता है)।
एकल उद्धरणों में वर्णों को संलग्न करना उद्धरणों के भीतर प्रत्येक वर्ण के शाब्दिक मूल्य को संरक्षित करता है। एकल उद्धरण के बीच एक एकल उद्धरण नहीं हो सकता है, तब भी जब एक बैकस्लैश द्वारा पूर्ववर्ती हो।
दोहरे उद्धरण चिह्नों में संलग्न करना अपवाद के साथ, उद्धरणों के भीतर सभी वर्णों के शाब्दिक मूल्य को संरक्षित करता है $ , ` , \ _ और, , जब इतिहास विस्तार सक्षम होता है ,! । अक्षर $ और ` दोहरे उद्धरण चिह्नों के भीतर अपने विशेष अर्थ को बनाए रखते हैं। बैकस्लैश अपना विशेष अर्थ केवल तभी रखता है जब निम्न वर्णों में से किसी एक का अनुसरण किया जाता है: $ , ` , ” ,
\ , या <newline> । एक दोहरे उद्धरण को दोहरे उद्धरण चिह्नों के साथ इसे बैकस्लैश के साथ पूर्ववर्ती द्वारा उद्धृत किया जा सकता है। यदि सक्षम है, तो इतिहास विस्तार। जब तक प्रदर्शन नहीं किया जाएगा! दोहरे उद्धरण चिह्नों में दिखाई देने से बैकस्लैश का उपयोग करके बच जाता है। बैकस्लैश से पहले ! हटाया नहीं गया है।
विशेष पैरामीटर * और @ का विशेष अर्थ है जब दोहरे उद्धरण में ( नीचे PARAMETERS देखें)।
$ ' स्ट्रिंग ' रूप के शब्द विशेष रूप से व्यवहार किए जाते हैं। यह शब्द ANSI C मानक द्वारा निर्दिष्ट बैकस्लैश-एस्कैप्ड वर्णों के साथ स्ट्रिंग में फैलता है । बैकस्लैश एस्केप सीक्वेंस, यदि मौजूद हैं, तो निम्नानुसार डिकोड किए जाते हैं:
\ a अलर्ट (घंटी)
\ b बैकस्पेस
\ e
\ E एक भागने वर्ण
\ f फॉर्म फ़ीड
\ n नई पंक्ति
\ r गाड़ी वापसी
\ t क्षैतिज टैब
\ v ऊर्ध्वाधर टैब
\\ बैकस्लैश
\ ' एकल उद्धरण
\ " दोहरे उद्धरण
\ NNN आठ-बिट वर्ण जिसका मान अष्ट मान nnn है
(एक से तीन अंक)
\ x HH आठ-बिट वर्ण जिसका मान हेक्साडेसिमल मान HH है
(एक या दो हेक्स अंक)
\ u HHHH यूनिकोड (ISO / IEC 10646) चरित्र जिसका मूल्य है
हेक्साडेसिमल मान HHHH (एक से चार हेक्स अंक)
\ U HHHHHHH
यूनिकोड (आईएसओ / आईईसी 10646) चरित्र जिसका मूल्य है
हेक्साडेसिमल मान HHHHHHHH (एक से आठ हेक्स अंक)
\ c x एक नियंत्रण- x वर्ण
विस्तारित परिणाम एकल-उद्धृत है, जैसे कि डॉलर का चिह्न मौजूद नहीं था।
डॉलर चिह्न ( $ " स्ट्रिंग " ) से पहले एक डबल-उद्धृत स्ट्रिंग स्ट्रिंग का वर्तमान स्थान के अनुसार अनुवाद करने का कारण होगा। यदि वर्तमान स्थान C या है POSIX है , तो डॉलर चिह्न को अनदेखा कर दिया जाता है। यदि स्ट्रिंग का अनुवाद और प्रतिस्थापित किया जाता है, तो प्रतिस्थापन डबल-उद्धृत होता है।
"$HOME"
"${USER:-root}"
"$(date)"
"`date`"
"$((1 + 2))"
"!!"
"\\"