सिंगलकोट और बैकलैश


10
~$ echo $'\'test'
'test

man bash कहते हैं:

एकल उद्धरणों में वर्णों को शामिल करना उद्धरणों के भीतर प्रत्येक वर्ण के शाब्दिक मूल्य को संरक्षित करता है। एकल उद्धरण के बीच एक एकल उद्धरण नहीं हो सकता है, तब भी जब एक बैकस्लैश द्वारा पूर्ववर्ती हो।

यह echo-command में तब क्यों काम करता है ?

जवाबों:


16

एकल उद्धरण '...'डॉलर के लिए अलग-अलग उद्धरण हैं $'...'। पूर्व किसी भी बैकस्लैशिंग का समर्थन नहीं करता है, जबकि बाद वाला एएनएसआई सी विनिर्देश का उपयोग करता है।


14

chorobaउत्तर पूरी तरह से सही है, यहाँ से विवरण man bash:

फॉर्म $ 'स्ट्रिंग' के शब्द विशेष रूप से व्यवहार किए जाते हैं। इस शब्द का विस्तार है
स्ट्रिंग, बैकस्लैश-एस्कैप्ड वर्णों के साथ ANSI C द्वारा निर्दिष्ट किया गया है
मानक। बैकस्लैश एस्केप सीक्वेंस, यदि मौजूद हैं, तो निम्नानुसार डिकोड किए जाते हैं:
              एक चेतावनी (घंटी)
              \ b बैकस्पेस
              \इ
              एक भागने चरित्र \ ई
              \ f फॉर्म फ़ीड
              \ n नई लाइन
              \ r गाड़ी वापसी
              \ t क्षैतिज टैब
              \ v ऊर्ध्वाधर टैब
              \\ बैकस्लैश
              \' एकल बोली
              \" दोहरे उद्धरण
              \? प्रश्न चिन्ह
              \ nn आठ-बिट वर्ण जिसका मान ऑक्टल मान है
                     nnn (एक से तीन अंक)
              \ xHH आठ-बिट वर्ण जिसका मान हेक्साडेसिमल है
                     मूल्य HH (एक या दो हेक्स अंक)
              \ uHHHH यूनिकोड (ISO / IEC 10646) चरित्र जिसका मूल्य है
                     हेक्साडेसिमल मान HHHH (एक से चार हेक्स अंक)
              \ UHHHHHHHH
                     यूनिकोड (आईएसओ / आईईसी 10646) चरित्र जिसका मूल्य है
                     हेक्साडेसिमल मान HHHHHHHH (एक से आठ हेक्स अंक)
              \ cx एक नियंत्रण-x वर्ण

इसीलिए!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.