विस्तार
हर बार जब हम कोई कमांड टाइप करते हैं और एंटर कुंजी दबाते हैं, खूब जोर से पीटना हमारे आदेश को पूरा करने से पहले पाठ पर कई प्रक्रियाएँ निष्पादित करता है। हमने ऐसे कुछ मामले देखे हैं कि कैसे एक साधारण वर्ण अनुक्रम, उदाहरण के लिए "*", शेल के लिए बहुत सारे अर्थ रख सकता है। ऐसा करने वाली प्रक्रिया कहलाती है विस्तार. विस्तार के साथ, हम किसी चीज़ में प्रवेश करते हैं और शेल के उस पर कार्य करने से पहले वह किसी और चीज़ में विस्तारित हो जाता है। यह प्रदर्शित करने के लिए कि इससे हमारा क्या तात्पर्य है, आइए इस पर एक नजर डालें गूंज आदेश। गूंज एक शेल बिल्टिन है जो एक बहुत ही सरल कार्य करता है। यह मानक आउटपुट पर अपने टेक्स्ट तर्क प्रिंट करता है:
[मुझे@लिनक्सबॉक्स ~]$ इको यह एक परीक्षण है
यह एक परीक्षण है
[मुझे@लिनक्सबॉक्स ~]$ इको यह एक परीक्षण है
यह एक परीक्षण है
यह बहुत सीधा है. किसी भी तर्क को पारित किया गया गूंज प्रदर्शित हो जाता है. आइए एक अन्य उदाहरण आज़माएँ:
[मुझे@लिनक्सबॉक्स ~]$ गूंज *
डेस्कटॉप दस्तावेज़ ls-output.txt संगीत चित्र सार्वजनिक टेम्पलेट वीडियो
[मुझे@लिनक्सबॉक्स ~]$ गूंज *
डेस्कटॉप दस्तावेज़ ls-output.txt संगीत चित्र सार्वजनिक टेम्पलेट वीडियो
तो अभी क्या हुआ? क्यों नहीं किया गूंज "*" प्रिंट करें? जैसा कि हम वाइल्डकार्ड के साथ अपने काम से याद करते हैं, "*" वर्ण का अर्थ फ़ाइल नाम में किसी भी वर्ण से मेल खाता है, लेकिन हमने अपनी मूल चर्चा में यह नहीं देखा कि शेल ऐसा कैसे करता है। सरल उत्तर यह है कि शेल "*" को किसी और चीज़ में विस्तारित करता है (इस उदाहरण में, वर्तमान कार्यशील निर्देशिका में फ़ाइलों के नाम) गूंज आदेश निष्पादित किया जाता है. जब एंटर कुंजी है
दबाया गया, कमांड निष्पादित होने से पहले शेल स्वचालित रूप से कमांड लाइन पर किसी भी क्वालीफाइंग वर्ण का विस्तार करता है, इसलिए गूंज कमांड ने कभी भी "*" नहीं देखा, केवल इसका विस्तारित परिणाम देखा। यह जानकर हम उसे देख सकते हैं गूंज अपेक्षा के अनुरूप व्यवहार किया।