मेरे पास कुछ बैश स्क्रिप्ट और सहायक फ़ाइलों के साथ एक युगल निर्देशिकाओं की एक उपयोगिता है जो प्रत्येक मशीन के लिए एक अलग निर्देशिका में संभवतः कई मशीनों पर तैनात की जाएगी। स्क्रिप्ट को स्वयं के सापेक्ष पथों को संदर्भित करने में सक्षम होने की आवश्यकता है इसलिए मुझे उस फ़ाइल को पथ प्राप्त करने में सक्षम होने की आवश्यकता है जिसे वर्तमान में निष्पादित किया जा रहा है।
मुझे उस dirname $0
मुहावरे के बारे में पता है जो पूरी तरह से काम करता है जब मेरी स्क्रिप्ट को सीधे कहा जाता है। दुर्भाग्य से एक पूरी तरह से अलग निर्देशिका से इन लिपियों के लिए सहानुभूति बनाने में सक्षम होने की इच्छा है और अभी भी सापेक्ष पथ तर्क काम है।
समग्र सुस्पष्ट संरचना का एक उदाहरण इस प्रकार है:
/
|-usr/local/lib
| |-foo
| | |-bin
| | | |-script.sh
| | |-res
| | | |-resource_file.txt
|-home/mike/bin
| |-link_to_script (symlink to /usr/local/lib/foo/bin/script.sh)
मैं इसका संदर्भ कैसे दे सकता हूं /usr/local/lib/foo/res/resource_file.txt
, script.sh
क्या यह इसके द्वारा लागू किया गया है /usr/local/lib/foo/bin/script.sh
या नहीं ~mike/bin/link_to_script
?