कैसे और क्यों आप $ SHLVL वैरिएबल का उपयोग करेंगे

$ SHLVL वैरिएबल का उपयोग आपको यह बताने के लिए किया जाता है कि आप कितने गोले हैं। यदि आप इससे उलझन में हैं तो शुरुआत में शुरुआत करना उचित है।

एक शैल क्या है?

एक खोल कमांड लेता है और उन्हें निष्पादित करने के लिए अंतर्निहित ऑपरेटिंग सिस्टम को देता है। अधिकांश लिनक्स सिस्टम पर शैल प्रोग्राम को बाश (द बोर्न अगेन शैल) कहा जाता है लेकिन सी शैल (टीसीएसएच) और कॉर्न शैल (केएसएच) सहित अन्य उपलब्ध हैं।

लिनक्स शैल तक कैसे पहुंचे

आम तौर पर एक उपयोगकर्ता के रूप में आप टर्मिनल इम्यूलेशन प्रोग्राम जैसे XTerm, कंसोल या gnome-terminal के उपयोग के माध्यम से शैल प्रोग्राम के साथ बातचीत करते हैं।

यदि आप ओपनबॉक्स या डेस्कटॉप वातावरण जैसे कि गनोम या केडीई जैसे विंडोज मैनेजर चला रहे हैं तो आपको मेनू या डैश से टर्मिनल एमुलेटर मिलेगा। कई प्रणालियों पर शॉर्टकट CTRL ALT और T एक टर्मिनल विंडो भी खुल जाएगा।

वैकल्पिक रूप से आप एक और tty (teletypewriter) पर स्विच कर सकते हैं जो कमांड लाइन खोल तक सीधे पहुंच प्रदान करता है। आप CTRL ALT और F1 या CTRL ALT और F2 आदि दबाकर ऐसा कर सकते हैं।

एक शैल स्तर क्या है

जब आप एक शेल में कमांड चलाते हैं तो यह शैल स्तर नामक किसी चीज़ पर चलता है। एक खोल के भीतर आप एक और खोल खोल सकते हैं जो इसे एक सबहेल या खोल खोल देता है जो इसे खोलता है।

इसलिए माता-पिता के खोल को शायद स्तर 1 खोल माना जाएगा और बाल खोल एक स्तर 2 खोल होगा।

शैल स्तर कैसे प्रदर्शित करें

यह लेख के शीर्षक के आधार पर कोई आश्चर्य नहीं होना चाहिए कि जिस तरह से आप बता सकते हैं कि आप किस शैल स्तर पर चल रहे हैं वह $ SHLVL चर का उपयोग कर है।

वर्तमान में चल रहे शैल स्तर को देखने के लिए निम्न टाइप करें:

$ SHLVL गूंजें

बल्कि दिलचस्प बात यह है कि यदि आप उपरोक्त आदेश को टर्मिनल विंडो में चलाते हैं तो आप देखकर आश्चर्यचकित हो सकते हैं कि परिणाम लौटाया गया है 2।

यदि आप tty का उपयोग कर एक ही कमांड चलाते हैं तो परिणाम 1 है।

ऐसा क्यों है कि आप पूछ सकते हैं? वैसे आपके द्वारा चलाए जा रहे डेस्कटॉप वातावरण को खोल के शीर्ष पर चलाया जा रहा है। वह खोल स्तर 1 होगा। उस डेस्कटॉप वातावरण के भीतर से खोलने वाली कोई भी टर्मिनल विंडो डेस्कटॉप वातावरण खोले जाने वाले खोल का एक बच्चा होना चाहिए और इसलिए शैल स्तर 2 के अलावा किसी अन्य नंबर पर शुरू नहीं हो सकता है।

टीटीई डेस्कटॉप वातावरण नहीं चला रहा है और इसलिए यह केवल एक स्तर 1 खोल है।

सब्सक्रिप्शन कैसे बनाएं

शैल और सबहेल की अवधारणा का परीक्षण करने का सबसे आसान तरीका निम्नानुसार है। टर्मिनल विंडो खोलें और निम्न टाइप करें:

$ SHLVL गूंजें

जैसा कि हम टर्मिनल विंडो से जानते हैं, न्यूनतम खोल स्तर 2 है।

अब टर्मिनल विंडो के भीतर निम्न टाइप करें:

शॉर्ट कमांड अपने आप पर एक इंटरैक्टिव खोल चलाता है जिसका मतलब है कि आप एक खोल या सबहेल के भीतर एक खोल का उपयोग कर रहे हैं।

यदि आप इसे फिर से टाइप करते हैं:

$ SHLVL गूंजें

आप देखेंगे कि खोल स्तर 3 पर सेट है। सबहेल के भीतर से sh कमांड चलाने से सबहेल का सबहेल खुल जाएगा और इसलिए खोल स्तर स्तर 4 पर होगा।

शैल स्तर क्यों महत्वपूर्ण है?

आपकी स्क्रिप्ट के भीतर चर के दायरे के बारे में सोचते समय खोल स्तर महत्वपूर्ण है।

आइए कुछ सरल से शुरू करें:

कुत्ते = मैसी
$ कुत्ते गूंजें

यदि आप उपरोक्त आदेश को खोल में चलाते हैं तो शब्द मैसी टर्मिनल विंडो पर प्रदर्शित किया जाएगा।

निम्नलिखित टाइप करके एक नया खोल खोलें:

यदि आप यह आदेश चलाते हैं तो आप देखेंगे कि वास्तव में कुछ भी वापस नहीं आया है:

$ कुत्ते गूंजें

ऐसा इसलिए है क्योंकि $ कुत्ते चर केवल शैल स्तर 2 पर उपलब्ध है। यदि आप सबहेल से बाहर निकलने के लिए बाहर निकलें टाइप करें और फिर $ कुत्ते को गूंजें तो शब्द मैसी फिर से प्रदर्शित किया जाएगा।

एक खोल के भीतर वैश्विक चर के व्यवहार के बारे में सोचने लायक भी है।

एक नई टर्मिनल विंडो में शुरू करें और निम्न टाइप करें:

निर्यात कुत्ता = मैसी
$ कुत्ते गूंजें

जैसा कि आप उम्मीद करेंगे कि मैसी शब्द प्रदर्शित होता है। अब एक सबहेल खोलें और echo $ dog फिर से टाइप करें। इस बार आप देखेंगे कि मैसी शब्द प्रदर्शित होता है भले ही आप सबहेल में हों।

इसका कारण यह है कि निर्यात कमांड ने $ कुत्ते परिवर्तनीय वैश्विक बनाया। यदि आप निर्यात कमांड का उपयोग करते हैं तो भी उसके कुत्ते चर को सबहेल में बदलना पड़ता है, इसके बावजूद इसके माता-पिता के गोले पर कोई प्रभाव नहीं पड़ता है।

उम्मीद है कि आप इससे देख सकते हैं कि स्क्रिप्ट लिखते समय आप जिस शैल स्तर पर काम कर रहे हैं उसे जानना कुछ महत्व है।

मेरे द्वारा दिए गए उदाहरण बहुत सरल हैं लेकिन एक शेल स्क्रिप्ट के लिए यह एक और शेल स्क्रिप्ट को कॉल करने के लिए काफी आम है, जो बदले में एक और शेल स्क्रिप्ट कहता है, अब वे सभी अलग-अलग स्तरों पर चल रहे हैं। खोल स्तर को जानना बहुत महत्वपूर्ण हो सकता है।