2013-02-15 39 views
8

तो जाहिर है, अगर मैं वर्तमान निर्देशिका में है तो मैं source एक स्क्रिप्ट नहीं कर सकता। उदाहरण के लिए,वर्तमान निर्देशिका में स्रोत स्क्रिप्ट नहीं कर सकता

# source some/dir/script.sh 
Ok 

ठीक काम करता है, लेकिन अगर मैं बाहर स्क्रिप्ट को एक ही निर्देशिका में हूँ, यह त्रुटियों:

# cd some/dir 
# source script.sh 
-sh: source: script.sh: file not found 

क्या देता है? निर्देशिका को बदलने के लिए इसके आसपास एकमात्र तरीका है?

मैं एंगस्ट्रॉम लिनक्स पर बैश v4.2.10 का उपयोग कर रहा हूं यदि यह प्रासंगिक है।

उत्तर

12

स्रोत आदमी पेज का हवाला देते हुए:

स्रोत फ़ाइल नाम [तर्क]

....

फ़ाइल नाम एक स्लैश शामिल नहीं है, तो नाम पथ में पता लगाने के लिए उपयोग किया जाता है फ़ाइल निर्देशिका जिसमें फ़ाइल- नाम है।

तो ... sourcePATH में निहित फ़ोल्डर में अपने script.sh खोज करने के लिए कोशिश कर रहा है।

आप वर्तमान फ़ोल्डर में फ़ाइल स्रोत के लिए उपयोग करना चाहते हैं

source ./script.sh 
1

एक पूर्ण पथ का उपयोग करें - source /root/path/to/some/dir/script.sh - आपको सॉर्ट करना चाहिए।