आपके लिए वह लाइन .profile
एक होनी चाहिए
export PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH=$PATH:$HOME/Unix/homebrew/bin
PATH=$PATH:~/Unix/homebrew/bin
~
जब यह किसी शब्द का पहला वर्ण होता है और यह निर्विवाद होता है , तो चरित्र केवल आपके घर निर्देशिका में विस्तारित होता है। आपने जो लिखा है, वह ~
दोहरे उद्धरण चिह्नों के बीच है और इसलिए इसका विस्तार नहीं है। यहां तक कि अगर आपने लिखा है export "PATH=$PATH:"~/Unix/homebrew/bin
, तो ~
इसका विस्तार नहीं किया जाएगा क्योंकि यह एक शेल शब्द की शुरुआत में नहीं है।
एक विशेष वितरण है, जिसका उद्देश्य PATH
समान चर के लिए मान लिखना है । तो ~
बस बराबर संकेत है कि निशान एक काम है, या यदि के बाद है ~
सिर्फ एक के बाद है :
एक काम के दाएँ हाथ की ओर में है, तो यह विस्तार किया है। केवल सादे असाइनमेंट में यह डिस्पेंस होता है, export PATH=…
गिनती नहीं करता है (यह export
बिलिन के लिए एक कॉल है , जिसमें ऐसा तर्क होता है जिसमें एक =
वर्ण होता है )।
यहां, आपको निर्यात करने की आवश्यकता नहीं है PATH
क्योंकि यह पहले से ही निर्यात किया गया है। export
जब आपको किसी वैरिएबल (पुराने बॉर्न शेल को छोड़कर जो आपको OSX या Linux पर नहीं मिलेगा) को बदलकर कॉल करने की आवश्यकता नहीं है । इसके अलावा, एक असाइनमेंट (फिर से, export
गिनती नहीं करता है) में, आपको दाहिने हाथ के चारों ओर दोहरे उद्धरण चिह्नों की आवश्यकता नहीं है, इसलिए रिक्त स्थान होने पर PATH=$PATH:~/Unix/homebrew/bin
भी सुरक्षित है $PATH
।
which
यहाँ गलती नहीं है; की~
परिभाषा में विस्तार किया जाना चाहिए थाPATH
। बैश में एक विषमता है कि यह~
वैसे भी फैलता हैPATH
, इसलिए दो गलतियां एक सही, तरह का बनाती हैं।