मौजूदा, सहायक उत्तर के पूरक के लिए; एक अलग उत्तर पोस्ट करने के लिए प्रोत्साहित करने के लिए QZ समर्थन के लिए टोपी की नोक :
दो अलग तंत्र यहां आते हैं:
(क) क्या cut
ही सीमांकक (अंतरिक्ष, इस मामले में) की आवश्यकता है के लिए पारित -d
विकल्प के लिए एक होने के लिए अलग तर्क या क्या यह संलग्न स्वीकार्य है सीधे करने के लिए -d
।
(ख) शेल को आम तौर पर पारित करने से पहले कैसे तर्क दिया जाता है।
(ए) उपयोगिताओं (जोर मेरा) के लिए पोसिक्स दिशानिर्देशों के एक उद्धरण द्वारा उत्तर दिया गया है
यदि मानक उपयोगिता का SYNOPSIS एक अनिवार्य विकल्प-तर्क के साथ एक विकल्प दिखाता है [...] एक अनुरूप अनुप्रयोग उस विकल्प और उसके विकल्प-तर्क के लिए अलग-अलग तर्क का उपयोग करेगा । हालांकि , एक अनुरूप कार्यान्वयन भी वर्णों में हस्तक्षेप के बिना एक ही तर्क स्ट्रिंग में विकल्प और विकल्प-तर्क को निर्दिष्ट करने की अनुमति देगा ।
दूसरे शब्दों में: इस मामले में, क्योंकि -d
विकल्प-तर्क अनिवार्य है , आप चुन सकते हैं कि क्या सीमांकक को निर्दिष्ट करना है :
- (s) EITHER: एक अलग तर्क
- (घ) या: एक मूल्य के रूप में सीधे जुड़ी लिए
-d
।
आपके द्वारा चुने जाने के बाद (या) (d), यह शेल का स्ट्रिंग-शाब्दिक पार्सिंग है - (b) - जो मायने रखता है:
दृष्टिकोण के साथ (रों) , निम्न रूपों के सभी बराबर हैं:
-d ' '
-d " "
-d \<space> # <space> used to represent an actual space for technical reasons
एप्रोच (डी) के साथ , निम्नलिखित सभी फॉर्म एक्विवल हैं:
-d' '
-d" "
"-d "
'-d '
d\<space>
समतुल्यता को खोल के स्ट्रिंग-शाब्दिक प्रसंस्करण द्वारा समझाया गया है :
उपरोक्तcut
सभी समाधान उसी स्ट्रिंग में (प्रत्येक समूह में) परिणाम के अनुसार उन्हें देखते हैं :
(s) : cut
देखता है -d
, अपने स्वयं के तर्क के रूप में, एक अलग तर्क के बाद जिसमें एक स्पेस चार होता है - बिना उद्धरण या \
उपसर्ग के!।
(d) : प्लस को स्पेस चार cut
देखता है - बिना उद्धरण या उपसर्ग के! - एक ही तर्क के हिस्से के रूप में ।-d
\
कारण संबंधित समूहों में रूपों अंततः समान हैं दुगना, पर आधारित है कैसे खोल पार्स स्ट्रिंग शाब्दिक :
- शेल शाब्दिक रूप से निर्दिष्ट करने की अनुमति देता है जैसा कि उद्धृत करने वाले एक तंत्र के माध्यम से होता है , जो कई रूप ले सकता है :
- एकल-उद्धृत स्ट्रिंग्स: अंदर की सामग्री शाब्दिक रूप
'...'
से ली गई है और एकल तर्क बनाती है
- डबल-उद्धृत स्ट्रिंग्स: अंदर की सामग्री
"..."
भी एक तर्क बनाती है, लेकिन प्रक्षेप के अधीन है (चर संदर्भ जैसे कि $var
, कमांड प्रतिस्थापन ( $(...)
या `...`
), या अंकगणितीय विस्तार ( $(( ... ))
) का विस्तार करता है ।
\
की -quoting व्यक्ति वर्ण : एक \
एकल वर्ण पूर्ववर्ती का कारण बनता है कि चरित्र एक शाब्दिक रूप में व्याख्या की जा करने के लिए।
- कोटेशन को उद्धरण हटाने के द्वारा पूरक किया जाता है , जिसका अर्थ है कि एक बार शेल ने कमांड लाइन को पार्स कर दिया है, यह उद्धरण वर्णों को तर्कों (संलग्न या या उदाहरणों) से हटा देता है - इस प्रकार, कमांड को लागू किया जा रहा है कभी उद्धरण वर्ण नहीं देखता है ।
'...'
"..."
\