मैं क्या करना चाहता हूं कि फ़ाइल से सेटिंग्स को मेरे वर्तमान इंटरैक्टिव बैश खोल में शामिल करना है:एक बैश स्क्रिप्ट उस निर्देशिका को कैसे जान सकती है जब इसे सोर्स किया जाता है। ऑपरेटर?
$। /path/to/some/dir/.settings
समस्या यह है कि .settings स्क्रिप्ट को "।" इस तरह की अन्य फाइलों को शामिल करने के लिए ऑपरेटर:
। .extra_settings
मैं .settings फ़ाइल में .extra_settings के सापेक्ष पथ का संदर्भ कैसे दूं? ये दो फाइलें हमेशा एक ही निर्देशिका में संग्रहीत होती हैं, लेकिन इन फ़ाइलों को स्थापित करने के आधार पर इस निर्देशिका का पथ अलग होगा।
ऑपरेटर हमेशा ऊपर दिखाए गए अनुसार/पथ/से/कुछ/डीआईआर/जानता है। .settings फ़ाइल निर्देशिका को कहां स्थापित कर सकती है? मेरे पास एक इंस्टॉल प्रक्रिया नहीं होगी जो स्थापित निर्देशिका के नाम को रिकॉर्ड करेगी।
बिल्कुल सही। $ (dirname "$ BASH_SOURCE") वही है जो मैं वही था जो मैं खोज रहा था। मेरे उद्देश्य के लिए, मुझे symlinks के बारे में बहुत परवाह नहीं है। जवाब देने वाले सभी के लिए धन्यवाद। यहां वास्तव में अच्छे जवाब हैं। – Gary
सिम्लिंक को हल करने के लिए आप बस ऐसा कर सकते हैं: 'dir = $ (dirname $ (readlink -f" $ BASH_SOURCE ")) –