एक और तरीका है दुभाषिया को बुलाना और उसके लिए स्क्रिप्ट को रास्ता देना:
/bin/sh /path/to/script
बिंदु और स्रोत बराबर हैं। (संपादित करें: नहीं, वे नहीं हैं: जैसा कि कीथबी किसी अन्य उत्तर पर एक टिप्पणी में बताते हैं, "" केवल बैश संबंधित गोले में काम करता है, जहां "स्रोत" दोनों बाश और क्षार संबंधित गोले में काम करता है।) यह स्क्रिप्ट को निष्पादित करता है। -place (जैसे कि आपने कॉपी की और स्क्रिप्ट को वहीं चिपका दिया)। इसका मतलब है कि स्क्रिप्ट में कोई भी फ़ंक्शन और गैर-स्थानीय चर बने हुए हैं। इसका मतलब यह भी है कि अगर स्क्रिप्ट एक निर्देशिका में सीडी बनाती है, तो आप तब भी वहां मौजूद रहेंगे।
स्क्रिप्ट चलाने के अन्य तरीके इसे अपने स्वयं के उप-भाग में चलाएंगे। स्क्रिप्ट में चर अभी भी जीवित नहीं हैं जब यह किया जाता है। यदि स्क्रिप्ट ने निर्देशिकाओं को बदल दिया है, तो यह कॉलिंग के वातावरण को प्रभावित नहीं करता है।
/ path / to / script और / bin / sh स्क्रिप्ट थोड़ी अलग हैं। आमतौर पर, एक स्क्रिप्ट में शुरुआत में "शेबंग" होता है जो इस तरह दिखता है:
#! /bin/bash
यह स्क्रिप्ट दुभाषिया का रास्ता है। यदि यह निष्पादित करते समय आप की तुलना में एक अलग दुभाषिया निर्दिष्ट करता है, तो यह अलग तरह से व्यवहार कर सकता है (या बिल्कुल भी काम नहीं कर सकता है)।
उदाहरण के लिए, पर्ल स्क्रिप्ट और रूबी स्क्रिप्ट क्रमशः (क्रमशः) से शुरू होती हैं:
#! /bin/perl
तथा
#! /bin/ruby
यदि आप दौड़कर उनमें से किसी एक स्क्रिप्ट को निष्पादित करते हैं /bin/sh script
, तो वे बिल्कुल भी काम नहीं करेंगे।
उबंटू वास्तव में बैश शेल का उपयोग नहीं करता है, लेकिन एक बहुत ही समान जिसे डैश कहा जाता है। बाॅस की आवश्यकता होने पर लिपियों को गलत तरीके से काम करने से बुलाया जा सकता है /bin/sh script
क्योंकि आपको सिर्फ डैश दुभाषिया का उपयोग करके बश लिपि कहा जाता है।
स्क्रिप्ट को सीधे कॉल करने और इंटरप्रेटर के लिए स्क्रिप्ट पथ पास करने के बीच एक और छोटा अंतर यह है कि स्क्रिप्ट को सीधे चलाने के लिए निष्पादन योग्य चिह्नित किया जाना चाहिए, लेकिन दुभाषिया के लिए मार्ग को पारित करके इसे चलाने के लिए नहीं।
एक और मामूली भिन्नता: आप किसी भी तरीके से किसी स्क्रिप्ट को निकालने के लिए उपसर्ग कर सकते हैं, इसलिए, आपके पास हो सकता है
eval sh script
eval script
eval . script
और इसी तरह। यह वास्तव में कुछ भी नहीं बदलता है, लेकिन मुझे लगा कि मैं इसे पूरी तरह से शामिल करूंगा।