शैल स्क्रिप्ट

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

ऑपरेटिंग प्रणाली शेल चलाने के स्वचालित मोड का अर्थ करने के लिए शब्द का प्रयोग सामान्यतः भी किया जाता है; प्रत्येक ऑपरेटिंग प्रणाली इन कार्यों के लिए विशेष नाम का उपयोग करता है जिसमें बैच फ़ाइलें (MSDos-Win95 भाप, OS/2), कमांड प्रक्रियाएँ (VMS), और शेल स्क्रिप्ट्स (विंडोज एन टी  भाप और तृतीय-पक्ष डेरिवेटिव जैसे 4NT (शेल) सम्मिलित हैं)—लेख है cmd.exe पर), और मेनफ्रेम ऑपरेटिंग प्रणाली कई नियमो से जुड़े हैं।

सामान्यतः यूनिक्स और यूनिक्स जैसी प्रणालियों में उपस्थित शेल में कॉर्न शेल, बॉर्न शेल और जीएनयू बैश सम्मिलित हैं। जबकि यूनिक्स ऑपरेटिंग प्रणाली में भिन्न त्रुटिपूर्ण शेल हो सकता है, जैसे कि macOS पर Zsh, ये शेल सामान्यतः पश्चगामी संगतता के लिए उपस्थित होते हैं।

टिप्पणियाँ
टिप्पणी (कंप्यूटर प्रोग्रामिंग) को शेल द्वारा अनदेखा किया जाता है। वे सामान्यतः हैश प्रतीक से शुरू होते हैं, और पंक्ति के अंत तक जारी रखें।

स्क्रिप्टिंग भाषा का विन्यास योग्य विकल्प
शेबैंग (यूनिक्स), या हैश-बैंग, एक विशेष प्रकार की टिप्पणी है जिसका उपयोग प्रणाली यह निर्धारित करने के लिए करता है कि फ़ाइल को निष्पादित करने के लिए किस दुभाषिया का उपयोग किया जाए। शेबैंग फ़ाइल की पहली पंक्ति होनी चाहिए और इसके साथ शुरू होनी चाहिए. यूनिक्स-जैसे ऑपरेटिंग प्रणाली में, निम्नलिखित वर्ण उपसर्ग की व्याख्या एक निष्पादन योग्य प्रोग्राम के पथ के रूप में की जाती है जो स्क्रिप्ट की व्याख्या करेगा।

शॉर्टकट
एक शेल स्क्रिप्ट प्रणाली कमांड का एक सुविधाजनक बदलाव प्रदान कर सकती है जहां विशेष पर्यावरण सेटिंग्स, कमांड विकल्प, या पोस्ट-प्रोसेसिंग स्वचालित रूप से लागू होती है, लेकिन इस तरह से जो नई स्क्रिप्ट को पूरी तरह से सामान्य यूनिक्स कमांड के रूप में कार्य करने की अनुमति देती है।

एक उदाहरण रास  का एक संस्करण बनाना होगा, फाइलों को सूचीबद्ध करने का आदेश, इसे एक छोटा कमांड नाम देना होगा , जो सामान्यतः उपयोगकर्ता के खाते में सहेजा जाएगा   निर्देशिका के रूप में  , और पूर्व-प्रदत्त कमांड विकल्पों का एक डिफ़ॉल्ट सेट।

यहां, पहली पंक्ति स्क्रिप्टिंग भाषा के #Configurable विकल्प का उपयोग करती है, यह इंगित करने के लिए कि किस दुभाषिया को शेष स्क्रिप्ट को निष्पादित करना चाहिए, और दूसरी पंक्ति फ़ाइल प्रारूप संकेतकों, कॉलम, सभी फाइलों (कोई भी छोड़ा नहीं) के विकल्पों के साथ एक सूची बनाती है, और एक ब्लॉकों में आकार।  ई> ऊपरी और निचले मामले को एक साथ फोल्ड नहीं करने के लिए डिफ़ॉल्ट संयोजन आदेश सेट करता है, नामों में विराम चिह्नों को अनदेखा करने के साइड इफेक्ट के रूप में सामान्य फ़ाइल नामों के साथ इंटरमिक्स  dotfile  नहीं करता है (डॉटफाइल सामान्यतः केवल तभी दिखाए जाते हैं जब कोई विकल्प पसंद हो   प्रयोग किया जाता है), और   दिए गए किसी भी पैरामीटर का कारण बनता है   ls के पैरामीटर के रूप में पारित करने के लिए, ताकि सभी सामान्य विकल्प और ls को ज्ञात अन्य  प्रोग्रामिंग भाषा सिंटैक्स  अभी भी उपयोग किए जा सकें।

उपयोगकर्ता तब बस उपयोग कर सकता था  सबसे अधिक इस्तेमाल की जाने वाली शॉर्ट लिस्टिंग के लिए।

एक शेल स्क्रिप्ट का एक और उदाहरण जिसे शॉर्टकट के रूप में इस्तेमाल किया जा सकता है, किसी दिए गए निर्देशिका के भीतर सभी फाइलों और निर्देशिकाओं की सूची को प्रिंट करना होगा।

इस मामले में, शेल स्क्रिप्ट #!/bin/sh की अपनी सामान्य शुरुआती लाइन से शुरू होगी। इसके बाद, स्क्रिप्ट clear कमांड निष्पादित करती है जो अगली लाइन पर जाने से पहले सभी टेक्स्ट के टर्मिनल को क्लियर करती है। निम्न पंक्ति स्क्रिप्ट का मुख्य कार्य प्रदान करती है। ls -al कमांड उन फाइलों और डाइरेक्टरी को सूचीबद्ध करता है जो उस डायरेक्टरी में हैं जहां से स्क्रिप्ट चलाई जा रही है। उपयोगकर्ता की जरूरतों को दर्शाने के लिए ls कमांड एट्रिब्यूट्स को बदला जा सकता है।

ध्यान दें: यदि कार्यान्वयन में clear कमांड नहीं है, तो इसके बजाय clr कमांड का उपयोग करने का प्रयास करें।

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

स्क्रिप्ट उपयोगकर्ता को संपादित की जा रही फ़ाइल को सहेजने, संपादक को रोकने और फिर बस चलाने की अनुमति देगी  अपडेटेड प्रोग्राम बनाने के लिए, उसका परीक्षण करें और फिर संपादक पर वापस लौटें। 1980 के दशक या उसके बाद से, हालांकि, इस प्रकार की स्क्रिप्ट को मेक (सॉफ़्टवेयर) जैसी उपयोगिताओं से बदल दिया गया है जो प्रोग्राम बनाने के लिए विशिष्ट हैं।

सामान्यीकरण
भिन्न-भिन्न कार्यों के लिए सरल बैच कार्य असामान्य नहीं हैं, लेकिन शेल लूप, परीक्षण और चर का उपयोग करने से उपयोगकर्ताओं को अधिक लचीलापन मिलता है। जेपीईजी छवियों को पीएनजी छवियों में कनवर्ट करने के लिए एक पॉज़िक्स एसएच स्क्रिप्ट, जहां छवि नाम कमांड लाइन पर प्रदान किए जाते हैं-संभवतः वाइल्डकार्ड के माध्यम से- स्क्रिप्ट के भीतर सूचीबद्ध होने के बजाय, इस फ़ाइल के साथ बनाया जा सकता है, सामान्यतः फ़ाइल में सहेजा जाता है

e> कमांड को केवल JPEG छवियों से भरी संपूर्ण निर्देशिका पर चलाया जा सकता है

प्रोग्रामिंग
कई आधुनिक शेल भी विभिन्न विशेषताओं की आपूर्ति करते हैं जो सामान्यतः केवल अधिक परिष्कृत सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषाओं में पाई जाती हैं, जैसे नियंत्रण-प्रवाह निर्माण, चर, टिप्पणी (कंप्यूटर प्रोग्रामिंग), सरणियाँ, सबरूटीन्स और इसी तरह। उपलब्ध सुविधाओं के इस प्रकार के साथ, शैल स्क्रिप्ट के रूप में यथोचित परिष्कृत अनुप्रयोगों को लिखना संभव है। हालाँकि, वे अभी भी इस तथ्य से सीमित हैं कि अधिकांश शेल भाषाओं में डेटा टाइपिंग प्रणाली, क्लासेस, थ्रेडिंग, जटिल गणित और अन्य सामान्य पूर्ण भाषा सुविधाओं के लिए बहुत कम या कोई समर्थन नहीं है, और सामान्यतः संकलित कोड या व्याख्या की गई भाषाओं की तुलना में बहुत धीमी होती हैं। प्रदर्शन लक्ष्य के रूप में गति के साथ।

मानक यूनिक्स उपकरण sed और awk शेल प्रोग्रामिंग के लिए अतिरिक्त क्षमताएं प्रदान करते हैं; पर्ल को शेल स्क्रिप्ट में भी एम्बेड किया जा सकता है जैसे कि अन्य स्क्रिप्टिंग भाषाओं जैसे टीसीएल। पर्ल और टीसीएल ग्राफिक्स टूलकिट के साथ भी आते हैं।

विशिष्ट पॉज़िक्स स्क्रिप्टिंग भाषाएँ
सामान्यतः UNIX, Linux, और POSIX- संगत ऑपरेटिंग प्रणाली इंस्टॉलेशन पर पाई जाने वाली स्क्रिप्टिंग भाषाओं में सम्मिलित हैं:
 * के शेल ksh88, Korn Shell '93 और अन्य जैसे कई संभावित संस्करणों में।
 * बॉर्न शेल, उपयोग में आने वाले सबसे पुराने गोले में से एक
 * सी खोल
 * बैश (यूनिक्स शेल)
 * , एक शेल जो Tcl/Tk प्रोग्रामिंग भाषा का एक मुख्य घटक है।
 * इच्छा (खोल) एक जीयूआई-आधारित टीसीएल/टीसी खोल है।

C और Tcl शेल्स का सिंटैक्स उक्त प्रोग्रामिंग भाषाओं के समान है, और कॉर्न शेल्स और बैश बॉर्न शेल के विकास हैं, जो ALGOL भाषा पर आधारित है, जिसमें कई अन्य तत्वों को भी जोड़ा गया है। दूसरी ओर, विभिन्न शेल प्लस टूल जैसे awk, sed, grep, और BASIC, Lisp (प्रोग्रामिंग लैंग्वेज), C (प्रोग्रामिंग लैंग्वेज) और आगे पर्ल प्रोग्रामिंग लैंग्वेज में योगदान दिया। अन्य गोले जो मशीन पर या डाउनलोड और/या खरीद के लिए उपलब्ध हो सकते हैं उनमें सम्मिलित हैं:
 * अल्मक्विस्ट खोल
 * पावरशेल
 * जेड खोल (, एक विशेष रूप से सामान्य उन्नत कोर्नशेल)
 * टेनेक्स सी शेल.

पायथन (प्रोग्रामिंग लैंग्वेज), रूबी (प्रोग्रामिंग भाषा), सी (प्रोग्रामिंग लैंग्वेज),  जावा (प्रोग्रामिंग भाषा) , पर्ल,  पास्कल (प्रोग्रामिंग भाषा) , Rexx आदि पर आधारित संबंधित प्रोग्राम भी विभिन्न रूपों में व्यापक रूप से उपलब्ध हैं। एक अन्य सामान्य खोल है पुराना खोल , जिसका मैनुअल पेज बताता है कि यह छठे संस्करण UNIX से मानक कमांड दुभाषिया का एक उन्नत, पिछड़ा-संगत पोर्ट है। तथाकथित दूरस्थ गोले जैसे

रिमोट प्रणाली पर एक अधिक जटिल खोल चलाने के लिए वास्तव में केवल उपकरण हैं और विशेषताओं की तरह कोई 'खोल' नहीं है।
 * एक रिमोट शेल
 * एक सुरक्षित खोल

अन्य स्क्रिप्टिंग भाषाएं
कई शक्तिशाली स्क्रिप्टिंग भाषाओं को उन कार्यों के लिए पेश किया गया है जो बहुत बड़े या जटिल हैं जिन्हें साधारण शेल स्क्रिप्ट के साथ आराम से संभाला जा सकता है, लेकिन जिसके लिए एक स्क्रिप्ट के फायदे वांछनीय हैं और एक पूर्ण विकसित, संकलित प्रोग्रामिंग भाषा का विकास नुकसानदेह होगा. स्क्रिप्टिंग भाषाओं को उच्च-स्तरीय प्रोग्रामिंग भाषाओं से भिन्न करने वाली बारीकियों पर बहस का एक लगातार स्रोत है, लेकिन, सामान्यतः बोलना, एक स्क्रिप्टिंग भाषा वह है जिसके लिए एक दुभाषिया की आवश्यकता होती है।

जीवन चक्र
शेल स्क्रिप्ट अक्सर सॉफ्टवेयर विकास में एक प्रारंभिक चरण के रूप में काम करते हैं, और बाद में एक भिन्न अंतर्निहित कार्यान्वयन के लिए रूपांतरण के अधीन होते हैं, सामान्यतः पर्ल, पायथन (प्रोग्रामिंग भाषा), या सी (प्रोग्रामिंग भाषा) में परिवर्तित हो जाते हैं। दुभाषिया निर्देश फ़ाइल नाम एक्सटेंशन के रूप में उजागर होने के बजाय कार्यान्वयन विवरण को स्क्रिप्ट के अंदर पूरी तरह से छिपाने की अनुमति देता है, और अंतिम उपयोगकर्ताओं पर कोई प्रभाव डाले बिना विभिन्न भाषाओं में निर्बाध पुनर्कार्यान्वयन प्रदान करता है।

जबकि .sh फाइल एक्सटेंशन वाली फ़ाइलें सामान्यतः किसी प्रकार की शेल स्क्रिप्ट होती हैं, अधिकांश शेल स्क्रिप्ट में कोई फ़ाइल नाम एक्सटेंशन नहीं होता है।

फायदे और नुकसान
शेल स्क्रिप्ट लिखने का शायद सबसे बड़ा फायदा यह है कि कमांड और सिंटैक्स बिल्कुल वही होते हैं जो सीधे कमांड-लाइन पर दर्ज किए जाते हैं। प्रोग्रामर को पूरी तरह से भिन्न सिंटैक्स पर स्विच करने की ज़रूरत नहीं है, क्योंकि अगर स्क्रिप्ट किसी दूसरी भाषा में लिखी गई थी, या अगर एक संकलित भाषा का इस्तेमाल किया गया था।

अक्सर, अन्य प्रोग्रामिंग भाषाओं में समतुल्य कोड लिखने की तुलना में शेल स्क्रिप्ट लिखना बहुत तेज होता है। कई लाभों में आसान प्रोग्राम या फ़ाइल चयन, त्वरित प्रारंभ और इंटरैक्टिव डिबगिंग सम्मिलित हैं। एक शेल स्क्रिप्ट का उपयोग उपस्थिता कार्यक्रमों के आसपास एक अनुक्रमण और निर्णय लेने की कड़ी प्रदान करने के लिए किया जा सकता है, और मध्यम आकार की स्क्रिप्ट के लिए एक संकलन कदम की अनुपस्थिति एक फायदा है। इंटरप्रिटेटिव रनिंग डिबगिंग कोड को स्क्रिप्ट में लिखना आसान बनाता है और बग्स का पता लगाने और उन्हें ठीक करने के लिए इसे फिर से चलाता है। गैर-विशेषज्ञ उपयोगकर्ता प्रोग्राम के व्यवहार को अनुकूलित करने के लिए स्क्रिप्टिंग का उपयोग कर सकते हैं, और शेल स्क्रिप्टिंग मल्टीप्रोसेसिंग के लिए कुछ सीमित गुंजाइश प्रदान करती है।

दूसरी ओर, शेल स्क्रिप्टिंग महंगी त्रुटियों से ग्रस्त है। असावधानीवश टंकण त्रुटियाँ जैसे  (इरादे के बजाय  ) यूनिक्स समुदाय में लोकगीत हैं; एक अतिरिक्त स्थान कमांड को एक से परिवर्तित करता है जो वर्तमान निर्देशिका में निहित सभी उपनिर्देशिकाओं को हटा देता है, जो फ़ाइल प्रणाली की रूट निर्देशिका से सब कुछ हटा देता है। इसी तरह की समस्याएं रूपांतरित हो सकती हैं   और   खतरनाक हथियारों में, और का दुरुपयोग   रीडायरेक्ट फ़ाइल की सामग्री को हटा सकता है। यह इस तथ्य से और अधिक समस्याग्रस्त हो जाता है कि कई यूनिक्स आदेश केवल एक अक्षर से नाम में भिन्न होते हैं: ,  ,  ,  , वगैरह।

एक और महत्वपूर्ण नुकसान धीमी गति से निष्पादन की गति और निष्पादित लगभग हर शेल कमांड के लिए एक नई प्रक्रिया शुरू करने की आवश्यकता है। जब एक पाइपलाइन (कंप्यूटिंग) स्थापित करके एक स्क्रिप्ट का काम पूरा किया जा सकता है जिसमें कुशल फ़िल्टर (सॉफ़्टवेयर) कमांड अधिकांश काम करते हैं, तो मंदी कम हो जाती है, लेकिन एक जटिल स्क्रिप्ट सामान्यतः एक पारंपरिक संकलित प्रोग्राम की तुलना में धीमी परिमाण के कई ऑर्डर होते हैं। जो समान कार्य करता है।

विभिन्न प्लेटफॉर्मों के बीच अनुकूलता संबंधी समस्याएं भी हैं। पर्ल के निर्माता लैरी वॉल ने प्रसिद्ध रूप से लिखा है कि शेल स्क्रिप्ट की तुलना में शेल को पोर्ट करना आसान है। इसी तरह, अधिक जटिल स्क्रिप्ट स्वयं शेल स्क्रिप्टिंग भाषा की सीमाओं में चल सकती हैं; सीमाएँ गुणवत्ता कोड लिखना मुश्किल बनाती हैं, और मूल शेल भाषा के साथ समस्याओं को सुधारने के लिए विभिन्न शेल्स द्वारा एक्सटेंशन समस्या को बदतर बना सकते हैं। कुछ स्क्रिप्ट भाषाओं का उपयोग करने के कई नुकसान प्रोग्रामिंग भाषा सिंटैक्स या कार्यान्वयन के भीतर डिज़ाइन की खामियों के कारण होते हैं, और जरूरी नहीं कि पाठ-आधारित कमांड-लाइन के उपयोग से लगाए गए हों; ऐसे कई गोले हैं जो अन्य शेल प्रोग्रामिंग भाषाओं का उपयोग करते हैं या यहाँ तक कि Scsh (जो योजना (प्रोग्रामिंग भाषा) का उपयोग करता है) जैसी पूर्ण विकसित भाषाओं का उपयोग करते हैं।

स्क्रिप्टिंग भाषाओं के बीच इंटरऑपरेबिलिटी
विभिन्न स्क्रिप्टिंग भाषाएं कई सामान्य तत्वों को साझा कर सकती हैं, मुख्य रूप से POSIX आधारित होने के कारण, और कुछ शैल विभिन्न शैलों का अनुकरण करने के लिए मोड प्रदान करते हैं। यह एक स्क्रिप्टिंग भाषा में लिखी गई शेल स्क्रिप्ट को दूसरे में अनुकूलित करने की अनुमति देता है।

इसका एक उदाहरण बैश है, जो बॉर्न शेल के समान व्याकरण और सिंटैक्स प्रदान करता है, और जो एक POSIX-अनुपालन मोड भी प्रदान करता है। जैसे, बॉर्न शेल के लिए लिखी गई अधिकांश शेल स्क्रिप्ट्स को BASH में चलाया जा सकता है, लेकिन हो सकता है कि इसका उल्टा सही न हो क्योंकि BASH के एक्सटेंशन हैं जो बॉर्न शेल में उपस्थित नहीं हैं। जैसे, इन विशेषताओं को विक्ट: बैशिज्म के रूप में जाना जाता है।

अन्य ऑपरेटिंग प्रणाली पर शेल स्क्रिप्टिंग
सिग्विन, एमकेएस टूलकिट, इंटरिक्स (जो कि यूनिक्स के लिए माइक्रोसॉफ्ट विंडोज सेवाओं में उपलब्ध है), हैमिल्टन सी खोल, यूडब्ल्यूआईएन (विंडोज़ के लिए एटी एंड टी यूनिक्स) और अन्य जैसे इंटरऑपरेबिलिटी सॉफ़्टवेयर विंडोज़ एनटी चलाने वाली मशीनों पर यूनिक्स शैल प्रोग्राम चलाने की अनुमति देते हैं। इसके उत्तराधिकारी, MS-DOS-Windows 95 शाखा पर कार्यक्षमता के कुछ नुकसान के साथ-साथ OS/2 के लिए पहले के MKS टूलकिट संस्करण। विंडोज प्रकार के ऑपरेटिंग प्रणाली के लिए कम से कम तीन डीसीएल कार्यान्वयन - एक्सएलएनटी के अलावा, एक बहु-उपयोग वाली स्क्रिप्टिंग भाषा पैकेज जो कमांड शेल, विंडोज स्क्रिप्ट होस्ट और  कॉमन गेटवे इंटरफ़ेस  प्रोग्रामिंग के साथ प्रयोग किया जाता है - इन प्रणालीों के लिए भी उपलब्ध हैं। मैक ओएस एक्स और उसके बाद के संस्करण भी यूनिक्स जैसे हैं। पूर्वोक्त उपकरणों के अलावा, कुछ POSIX और OS/2 कार्यक्षमता का उपयोग Windows NT ऑपरेटिंग प्रणाली श्रृंखला के संबंधित पर्यावरणीय उप-प्रणालियों के साथ-साथ Windows 2000 तक भी किया जा सकता है। एक तीसरा, 16-बिट कंप्यूटिंग | 16-बिट सबप्रणाली जिसे अक्सर MS-DOS सबप्रणाली कहा जाता है, उपरोक्त MS-DOS बैच फ़ाइलों को चलाने के लिए इन ऑपरेटिंग प्रणालीों के साथ प्रदान किए गए Command.com का उपयोग करता है। कंसोल विकल्प 4DOS, 4OS2, FreeDOS, पीटर नॉर्टन का NDOS और टेक कमांड कंसोल)|4NT / Take Command जो Windows NT-style cmd.exe, MS-DOS/Windows 95 बैच फ़ाइलों (Command.com द्वारा संचालित) में कार्यक्षमता जोड़ता है।, OS/2 के cmd.exe, और 4NT क्रमशः उन शेल के समान हैं जो वे बढ़ाते हैं और Windows स्क्रिप्ट होस्ट के साथ अधिक एकीकृत होते हैं, जो तीन पूर्व-स्थापित इंजनों, VBScript, JScript, और अनुप्रयोगों के लिए Visual Basic के साथ आता है और जिसके लिए Rexx, Perl, Python, Ruby, और Tcl के साथ कई तृतीय-पक्ष इंजन जोड़े जा सकते हैं, जिनके 4NT और संबंधित कार्यक्रमों में पूर्व-निर्धारित कार्य हैं। PC DOS काफी हद तक MS-DOS के समान है, जबकि DR DOS अधिक भिन्न है। Windows NT के पुराने संस्करण OS/2 सबप्रणाली द्वारा 4OS2 के समकालीन संस्करणों को चलाने में सक्षम हैं।

परिभाषा के अनुसार, स्क्रिप्टिंग भाषाएँ विस्तारित की जा सकती हैं; उदाहरण के लिए, एक MS-DOS/Windows 95/98 और Windows NT प्रकार के प्रणाली शेल/बैच प्रोग्राम को KiXtart, QBasic, विभिन्न BASIC, Rexx, Perl, और Python (प्रोग्रामिंग लैंग्वेज) कार्यान्वयन, Windows स्क्रिप्ट होस्ट जैसे टूल कॉल करने की अनुमति देते हैं। और इसके स्थापित इंजन। यूनिक्स और अन्य पॉज़िक्स-संगत प्रणाली पर, शेल स्क्रिप्ट की स्ट्रिंग और न्यूमेरिक प्रोसेसिंग क्षमता को बढ़ाने के लिए awk और sed का उपयोग किया जाता है। Tcl, Perl, Rexx, और Python में ग्राफिक्स टूलकिट हैं और शेल स्क्रिप्ट के लिए फ़ंक्शन और प्रक्रियाओं को कोड करने के लिए उपयोग किया जा सकता है जो एक गति अड़चन पैदा करता है (C, फोरट्रान, असेंबली लैंग्वेज और c अभी भी बहुत तेज़ हैं) और कार्यक्षमता जोड़ने के लिए जो शेल में उपलब्ध नहीं है भाषा जैसे सॉकेट और अन्य कनेक्टिविटी फ़ंक्शंस, हेवी-ड्यूटी टेक्स्ट प्रोसेसिंग, अगर कॉलिंग स्क्रिप्ट में वे क्षमताएं नहीं हैं, तो नंबरों के साथ काम करना, सेल्फ-राइटिंग और सेल्फ-मॉडिफाइंग कोड, प्रत्यावर्तन  जैसी तकनीकें, डायरेक्ट मेमोरी एक्सेस, विभिन्न प्रकार की छँटाई और अधिक, जो मुख्य लिपि में कठिन या असंभव हैं, इत्यादि। एप्लिकेशन और VBScript के लिए Visual Basic का उपयोग स्प्रेडशीट, डेटाबेस, सभी प्रकार के स्क्रिप्ट योग्य प्रोग्राम, दूरसंचार सॉफ़्टवेयर, डेवलपमेंट टूल, ग्राफ़िक्स टूल और अन्य सॉफ़्टवेयर जैसी चीज़ों को नियंत्रित करने और संचार करने के लिए किया जा सकता है, जिन्हें  घटक वस्तु मॉडल  के माध्यम से एक्सेस किया जा सकता है।

यह भी देखें

 * गोंद कोड
 * दुभाषिया निर्देश
 * शेबांग (यूनिक्स) | शेबांग प्रतीक (#!)
 * यूनिक्स गोले
 * पावरशेल
 * विंडोज स्क्रिप्ट होस्ट

बाहरी संबंध

 * An Introduction To Shell Programming by Greg Goebel
 * UNIX / Linux shell scripting tutorial by Steve Parker
 * Shell Scripting Primer (Apple)
 * What to watch out for when writing portable shell scripts by Peter Seebach
 * Free Unix Shell scripting books
 * Beginners/BashScripting, Ubuntu Linux