में पथ वैरिएबल संपादित करने के लिए मेरी मैं .bash_profile है निम्नलिखित लाइनों में:कैसे ZSH
PATHDIRS="
/usr/local/mysql/bin
/usr/local/share/python
/opt/local/bin
/opt/local/sbin
$HOME/bin"
for dir in $PATHDIRS
do
if [ -d $dir ]; then
export PATH=$PATH:$dir
fi
done
हालांकि मैं अपने .zshrc को यह कॉपी करने की कोशिश की, और $PATH
सेट नहीं की जा रही है।
सबसे पहले मैंने "अगर निर्देशिका मौजूद है" फ़ंक्शन के अंदर echo
कथन डाले और मैंने पाया कि यदि कथन कथन का मूल्यांकन कर रहा था, यहां तक कि स्पष्ट रूप से मौजूद निर्देशिकाओं के लिए भी।
तब मैं निर्देशिका-मौजूद जाँच हटाया, और $PATH
इस तरह गलत तरीके से सेट किया जा रहा था:
/usr/bin:/bin:/usr/sbin:/sbin:
/usr/local/bin
/opt/local/bin
/opt/local/sbin
/Volumes/Xshare/kburke/bin
/usr/local/Cellar/ruby/1.9.2-p290/bin
/Users/kevin/.gem/ruby/1.8/bin
/Users/kevin/bin
नीचे निर्देशिका में कार्यक्रमों की कोई नहीं मिला या मार डाला जा रहा था।
मैं क्या गलत कर रहा हूँ?
+1 - 'zsh' में '$ PATH' हेरफेर के लिए उपयोगी दो अतिरिक्त त्वरित युक्तियां (* द्वारा पारित किसी के लिए): * (1) * संलग्न करने के बजाय प्रीपेड करने के लिए: 'पथ [1,0] =/पथ/to/dir', और * (2) * यदि आप dirs को खोजने के लिए globbing का उपयोग कर रहे हैं, तो आपको लूप का उपयोग करने की आवश्यकता नहीं है और इसके बजाय बस 'पथ + = ($ PWD/node_modules/**/bin ') (* (1) * के साथ भी काम करता है)। – unthought
धन्यवाद, मैंने पथ = ($^पथ (एन- /)) के साथ आपके सुझाव का उपयोग किया। अब यह सुनिश्चित करने का कोई तरीका है कि प्रत्येक बार जब मैं स्रोत चलाता हूं तो प्रत्येक डीआईआर $ PATH में डुप्लिकेट नहीं करता है ~/.zshrc? धन्यवाद – stansult
@stansult [क्या मेरे पैथ में एक निर्देशिका को केवल zsh में जोड़ने का कोई तरीका है यदि यह पहले से मौजूद नहीं है?] (Http://unix.stackexchange.com/questions/62579/is-there-a-way- to-add-a-directory-to-my-path-in-zsh-only-if-its-not-already-pre) – Gilles