जवाबों:
आपका टर्मिनल एक शेल (शायद सबसे bash
) चलाता है , जो कि आपके आदेशों के लिए पूछ रहा है और उन्हें चलाता है।
इस इंटरेक्टिव मोड के अलावा आप किसी फाइल से कमांड चलाने के लिए अपने शेल का भी उपयोग कर सकते हैं। अपनी फ़ाइल में आदेशों को निष्पादित करने के लिए आप या तो शेल को सीधे कॉल कर सकते हैं bash script
या आप अपनी फ़ाइल को "शेलबैंग" से शुरू कर सकते हैं #!/bin/bash
और इसे निष्पादन योग्य ( chmod +x script
) बना सकते हैं। फिर आप स्क्रिप्ट को एक बाइनरी की तरह मान सकते हैं और उदाहरण के लिए निष्पादित कर सकते हैं ./script
या इसे उस जगह पर रख सकते हैं जहां आप खोल रहे हैं। ( echo $PATH
)
शायद आपके इंटरेक्टिव शेल और रन करने के लिए उपयोग किया जाने वाला शेल दोनों है bash
। एक "पहले दिन सीखने की लय" के दृष्टिकोण से दोनों मोड में बैश बिल्कुल समान है। - बहुत बाद में आप मामूली अंतर के बारे में ठोकर खा सकते हैं। यदि आप वास्तव में विस्तार से जानना चाहते हैं, तो मैं man bash
"इंटरैक्टिव" का उल्लेख करने वाले स्थानों को पढ़ने और खोजने का सुझाव दूंगा। (आप दबाकर एक आदमी पृष्ठ खोज सकते हैं /
।)
एक महत्वपूर्ण बात यह है कि स्क्रिप्ट को एक नई प्रक्रिया के रूप में चलाया जाता है। यह विशेष रूप से इसका मतलब है कि स्क्रिप्ट में सेट किए गए चर कॉलिंग शेल में दिखाई नहीं देते हैं।
$ export a=1
$ echo $a
1
$ bash -c 'echo $a;a=2;echo $a' # change the value in a script
1
2
$ echo $a # value not changed here
1
$
निर्यात के बिना a
आंतरिक लिपि में भी दिखाई नहीं देता है।
सामान्य तौर पर, उत्तर "नहीं" होगा, शेल में कमांड सिंटैक्स और शब्दार्थ में समान हैं।
लेकिन पर्यावरण के विन्यास से संबंधित छोटी बारीकियों का एक समूह है (जो चर का उपयोग किया जाता है और जो वे सेट होते हैं)।
लिनक्स के लिए पसंद की इंटरैक्टिव खोल bash है, लेकिन पटकथा अक्सर दूसरे दुभाषिए का उपयोग करता है ( sh
हैं, जिनमें से एक पूर्ववर्ती है bash
, ksh
है, जो पार्टी के साथ पर बराबर है), तो आप क्या खोल प्रयोग किया जाता है को ध्यान में रखना है (वर्तमान खोल नाम पारंपरिक रूप से चर में आयोजित किया जाता है SHELL
, टाइप करने का प्रयास करें echo $SHELL
)।
इंटरैक्टिव सत्र के लिए और स्क्रिप्ट निष्पादन के लिए एक ही दुभाषिया के विन्यास में अंतर हो सकता है।
कोई स्क्रिप्ट उन आदेशों की एक सूची है जिन्हें आप टर्मिनल में टाइप कर सकते हैं।
आप टर्मिनल में एक स्क्रिप्ट की समग्रता पेस्ट कर सकते हैं, और परिणाम इसे चलाने के समान होगा।
इसके विपरीत, आप एक फ़ाइल के अंदर अपने टर्मिनल कमांड को "सेव" कर सकते हैं और इसे एक पुन: प्रयोज्य स्क्रिप्ट में बदल सकते हैं और इसे अपने परिवार और दोस्तों के साथ साझा कर सकते हैं।
source script_file
। जो वर्तमान संदर्भ में ईएनवी संस्करण को संपादित करेगा। स्क्रिप्ट को चलाने के ./script_file
दौरान ENV को संशोधित नहीं किया जाएगा, जब तक export
कि इसका स्पष्ट रूप से उपयोग नहीं किया जाता है।
export
स्क्रिप्ट के लिए कॉलिंग शेल के किसी भी चर को संशोधित करना संभव नहीं है। वही पीडब्ल्यूडी, परिभाषित उपनाम, कार्य और जैसी चीजों के लिए जाता है। उन्हें केवल अंतःक्रियात्मक रूप से या किसी फ़ाइल को सोर्स करके बदला जा सकता है। लेकिन हाँ, यह शायद कुछ भी नहीं है कि कोई पहले दिन ठोकर खाएगा। :)