मैं उस भूमिका शब्द को लेकर भ्रमित हो रहा हूं, जिसमें बंटवारे में भूमिका निभाई जाती है zsh
। सी, पायथन या MATLAB में प्रोग्रामिंग करते समय मुझे इस अवधारणा से अवगत नहीं कराया गया है, और इसने मेरी रुचि को बढ़ा दिया है कि शब्द विभाजन क्यों शेल प्रोग्रामिंग के लिए कुछ विशिष्ट लगता है।
मैंने इससे पहले और अन्य साइटों पर शब्द विभाजन के बारे में पढ़ा है, लेकिन अवधारणा की स्पष्ट व्याख्या नहीं मिली है। विकिपीडिया में शब्द बंटवारे की एक परिभाषा है, लेकिन यह यूनिक्स के गोले पर कैसे लागू होता है, इस पर संदर्भ नहीं लगता है।
यहाँ मेरी उलझन का एक उदाहरण है zsh
:
में जेड शैल पूछे जाने वाले प्रश्न , मैं निम्नलिखित पढ़ें:
३.१:
$var
जहाँvar="foo bar"
मुझे उम्मीद नहीं है वहाँ क्यों नहीं करता है?अधिकांश बॉर्न-शेल डेरिवेटिव में, एकाधिक-शब्द चर जैसे कि
var="foo bar"
एक कमांड में पारित होने याfor foo in $var
लूप में उपयोग किए जाने पर शब्दों में विभाजित होते हैं । डिफ़ॉल्ट रूप से, zsh में वह व्यवहार नहीं होता है: चर बरकरार रहता है। (यह एक बग नहीं है! नीचे देखें!)SH_WORD_SPLIT
संगतता प्रदान करने के लिए विकल्प मौजूद है।
हालाँकि, Z शेल मैनुअल में , मैंने निम्नलिखित पढ़ा:
SH_WORD_SPLIT (-y) <K> <S>
अनियोजित पैरामीटर विस्तार पर प्रदर्शन करने के लिए क्षेत्र विभाजन का कारण बनता है। ध्यान दें कि इस विकल्प का शब्द विभाजन से कोई लेना-देना नहीं है । (पैरामीटर विस्तार देखें।)
यह क्यों कहता है कि करता SH_WORD_SPLIT
है कोई लेना देना नहीं शब्द बंटवारे के साथ? क्या शब्द विभाजन ठीक नहीं है कि यह सब क्या है?
"word1 word2 word3"
सूची / सरणियों में परिवर्तित करता है"word1" "word2" "word3"
? मैंने ओपी को zsh में भ्रम के एक विशिष्ट स्रोत के साथ अद्यतन किया है।