मैंने लिखा है कि एक ZSH स्क्रिप्ट स्रोत परियोजना विशिष्ट ZSH कॉन्फ़िगरेशन के लिए कॉलबैक फ़ंक्शन chpwd
का उपयोग करती है। मुझे यकीन नहीं है कि यह बैश के साथ काम करता है, लेकिन मुझे लगता है कि यह एक कोशिश के लायक होगा। यदि आपको उस निर्देशिका में कोई स्क्रिप्ट फ़ाइल नहीं मिलती है जिसमें आप सीडीइंग कर रहे हैं, तो यह तब तक मूल निर्देशिकाओं की जांच करेगा जब तक कि इसे स्रोत पर स्क्रिप्ट नहीं मिलती (या जब तक यह /
तक पहुंच न जाए)। यह निर्देशिका से बाहर होने पर unmagic
फ़ंक्शन भी कॉल करता है, जो आपको प्रोजेक्ट छोड़ते समय अपने पर्यावरण को साफ करने की अनुमति देता है। एक "जादू" स्क्रिप्ट के लिए
http://github.com/jkramer/home/blob/master/.zsh/func/magic
उदाहरण:
export BASE=$PWD # needed for another script of mine that allows you to cd into the projects base directory by pressing ^b
ctags -R --languages=Perl $PWD # update ctags file when entering the project directory
export PERL5LIB="$BASE/lib"
# function that starts the catalyst server
function srv {
perl $BASE/script/${PROJECT_NAME}_server.pl
}
# clean up
function unmagic {
unfunction src
unset PERL5LIB
}
का समर्थन बस 'printf "\ e] 1; $ PWD \ a" 'और bam (!) जोड़ें, टैब नाम को pwd में बदल दिया गया है। – Fadi
@ फ़ैडी सच होने पर, अधिकांश लोग केवल इसके लिए प्रॉम्प्ट पर एक एस्केप अनुक्रम जोड़ते हैं, यह वास्तव में कोई फर्क नहीं पड़ता कि यह प्रत्येक प्रॉम्प्ट के साथ अपडेट हो जाता है (केवल निर्देशिकाओं को बदलने के बजाए), क्योंकि यह उल्लेखनीय नहीं होगा। – falstro