विभिन्न प्रकार के गोले हैं। SSH कमांड का निष्पादन शेल एक गैर-इंटरैक्टिव शेल है, जबकि आपका सामान्य शेल या तो एक लॉगिन शेल या एक इंटरैक्टिव शेल है। विवरण इस प्रकार है, मैन बैश से:
एक लॉगिन शेल वह है जिसका तर्क का पहला चरित्र है
शून्य एक - या, एक - thelogin विकल्प के साथ शुरू हुआ है।
एक इंटरैक्टिव शेल एक गैर-विकल्प के बिना शुरू किया गया है
तर्क और बिना -c विकल्प के जिसका मानक इनपुट है
और त्रुटि दोनों टर्मिनलों से जुड़ी हुई है (जैसा कि निर्धारित किया गया है
isatty (3)), या एक -i विकल्प के साथ शुरू हुआ। PS1 है
सेट और $ - इसमें i भी शामिल है यदि बैश इंटरैक्टिव है, तो अनुमति देता है
इस राज्य का परीक्षण करने के लिए शेल स्क्रिप्ट या एक स्टार्टअप फ़ाइल।
निम्नलिखित पैराग्राफों का वर्णन है कि बैश कैसे निष्पादित करता है
स्टार्टअप फ़ाइलें। यदि कोई भी फाइल मौजूद है लेकिन नहीं हो सकती है
पढ़ें, बैश एक त्रुटि की रिपोर्ट करता है। फाइल में टिल्ड्स का विस्तार किया जाता है
Tilde विस्तार के तहत नीचे वर्णित नाम
विस्तार अनुभाग।
जब बैश को इंटरेक्टिव लॉगिन शेल के रूप में, या के रूप में लगाया जाता है
- पहले विकल्प के साथ एक गैर-इंटरैक्टिव शेल, यह पहले
यदि फ़ाइल / आदि / प्रोफ़ाइल से कमांड पढ़ता है और निष्पादित करता है, तो
वह फ़ाइल मौजूद है। उस फ़ाइल को पढ़ने के बाद, यह दिखता है
~ / .bash_profile, ~ / / .bash_login, और ~ / .profile, उस में
आदेश, और पढ़ता है और पहले एक से कमांड निष्पादित करता है
यह मौजूद है और पठनीय है। --Noprofile विकल्प हो सकता है
जब शेल इस व्यवहार को बाधित करने के लिए शुरू किया जाता है तो इसका उपयोग किया जाए
आईओआर।
जब कोई लॉगिन शेल बाहर निकलता है, तो bash कमांड पढ़ता और निष्पादित करता है
फ़ाइल से ~ / .bash_logout, यदि यह मौजूद है।
जब एक इंटरेक्टिव शेल जो लॉगिन शेल नहीं है
शुरू, बैश पढ़ता है और ~ / .bashrc से कमांड निष्पादित करता है,
यदि वह फ़ाइल मौजूद है। का उपयोग करके इसे बाधित किया जा सकता है
--norc विकल्प। --Rcfile फ़ाइल विकल्प बैश को बाध्य करेगा
पढ़ने और फ़ाइल के बजाय आदेश से निष्पादित करने के लिए
~ / .Bashrc।
जब शेल को चलाने के लिए गैर-अंतःक्रियात्मक रूप से बैश शुरू किया जाता है
स्क्रिप्ट, उदाहरण के लिए, यह चर BASH_ENV में दिखता है
पर्यावरण, अगर वहाँ दिखाई देता है, तो इसका मूल्य बढ़ाता है,
और पढ़ने के लिए एक फ़ाइल के नाम के रूप में विस्तारित मूल्य का उपयोग करता है
और निष्पादित करें। बैश ऐसा व्यवहार करता है जैसे कि निम्न आदेश
निष्पादित किया गया:
अगर [-n "$ BASH_ENV"]; फिर । "$ BASH_ENV"; फाई
लेकिन PATH वैरिएबल का मान खोज करने के लिए उपयोग नहीं किया जाता है
फ़ाइल नाम के लिए।