bash
अलग तरह से काम करता है चाहे वह एक शेल हो या एक सामान्य प्रोग्रामिंग लैंग्वेज (जैसे perl
या python
)।
डिज़ाइन द्वारा ~/.bash_profile
, में ~/.bashrc
, आदि , सेटिंग्स उपयोगकर्ताओं के लिए चीजों को सेट करने के लिए होती हैं जब एक शेल (लॉगिन शेल, इंटरट्रैक्टिव शेल) की भूमिकाbash
निभाता है । पर्यावरण के बारे में सोचें जो आपके पास एक xterm
(इंटरेक्टिव शेल) या ssh
सत्र (लॉगिन शेल) या कंसोल (लॉगिन शेल) में है।
दूसरी ओर, सेवाओं के प्रबंधन के लिए कई लिपियों के बारे bash
में भी एक शक्तिशाली लम्बी भाषा है systemd
- जिसमें काम करने की एक अलग शैली की आवश्यकता होती है। उदाहरण के लिए, जब कोई डेवलपर एक सिस्टम स्क्रिप्ट या bash
प्रोग्राम लिख रहा होता है , तो वह उपयोगकर्ता को ~/.bash_profile
स्वचालित रूप से स्रोत करना पसंद नहीं करेगा। यह एक सामान्य कार्यक्रम है, शेल नहीं। एक सामान्य कार्यक्रम (कार्यक्रमों सहित bash
) स्वाभाविक रूप से वर्तमान कामकाजी निकासी (शेल) से सेटिंग्स प्राप्त करेगा , लेकिन उन्हें सेट नहीं किया ।
अगर हम एक प्रोग्राम लिखते हैं cron
, तो bash
यह सिर्फ लिखा जाना है bash
; वास्तव में, हम इसे में लिख सकते हैं python
या perl
या किसी अन्य progamming language- तो हम करने के लिए सूत्रों का कहना है एक विकल्प हो सकता है bash
की ~/.bash_profile
(पढ़ें: उपयोगकर्ता के खोल, जो सिर्फ अपने प्रोग्रामिंग भाषा के एक ही भाषा होने की सेटिंग):
[ -f /home/user/.bash_profile ] && . /home/user/.bash_profile
हालांकि, क्या होगा यदि वह विशेष उपयोगकर्ता bash
अपने शेल के रूप में उपयोग नहीं करता है? वह / वह उपयोग कर सकते हैं zsh
, ksh
, fish
, आदि तो, कि अभ्यास वास्तव में काम नहीं होगा, जब सार्वजनिक उपयोग के लिए प्रोग्राम लिखने।
तो, आप स्रोत कर सकते हैं ~/.bash_profile
यदि आपको लगता है कि काम करेगा। लेकिन, यहां, यह इस बारे में नहीं है कि क्या हम किसी फ़ाइल को स्रोत बनाने में सक्षम हैं, यह इस बारे में है कि सिस्टम में चीजों को कैसे काम करना चाहिए: डिजाइन अवधारणा । संक्षेप में: हमें bash
2 भूमिकाओं वाली कुछ चीज़ों को देखना चाहिए : शेल और प्रोगामिंग लैंग्वेज । तब सब कुछ समझना बहुत आसान हो जाएगा।
.bashrc
में एक पंक्ति है जो इसे गैर-संवादात्मक गोले में चलने से रोकती है ।