2009-07-24 7 views
7

मैं एक बैश टर्मिनल में एक फ़ाइल सोर्स कर रहा हूं जिसे कुछ पर्यावरण varibles निर्यात करने की आवश्यकता है।आप बैश में सोर्सिंग की गई फ़ाइल के मूल फ़ाइल नाम का उपयोग कैसे कर सकते हैं?

उदाहरण:

source linux_x86.env 

env फ़ाइल थोड़े इस तरह दिखता है:

export ARCH=/home/user/project/linux_x86 

मैं के लिए संकलित करने के लिए विभिन्न आर्किटेक्चर का एक समूह है और मैं कुछ इस तरह करने में सक्षम हो चाहता हूँ:

export ARCH=/home/user/project/`basename $0 .env` 

जहां basename $0 .env मुझे एनएसवी फ़ाइल बेसनाम नाम देगा

bash linux_x86.env 
linux_x86 

उपर्युक्त काम एक बैश स्क्रिप्ट है लेकिन जब आप फ़ाइल को स्रोत करते हैं तो काम नहीं लगता है।

क्या स्रोत से वही व्यवहार प्राप्त करने का कोई तरीका है?

उत्तर

10

Getting the source directory of a Bash script from within देखें, खासकर BASH_SOURCE चर के संबंध में टिप्पणी।

सारांश: SCRIPT_NAME=$(basename ${BASH_SOURCE[0]})

+0

धन्यवाद! मैं उपर्युक्त NAME = 'बेसनाम $ BASH_SOURCE .env' के सरलीकृत संस्करण के साथ समाप्त हुआ – hacintosh

संबंधित मुद्दे