আপনার লাইনটি .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যখন আপনি একটি ভেরিয়েবলের মান পরিবর্তন করেন তখন আপনাকে কল করার দরকার নেই (ওএসএক্স বা লিনাক্সে পুরানো বোর্ন শেলগুলি পাবেন না যা বাদে)। এছাড়াও, একটি অ্যাসাইনমেন্টে (আবার, exportগণনা করা হয় না), আপনার ডান হাতের চারপাশে ডাবল কোট লাগবে না, তাই ফাঁকা স্থান PATH=$PATH:~/Unix/homebrew/binথাকলেও নিরাপদ $PATH।
whichএখানে দোষ নেই;~সংজ্ঞা প্রসারিত করা উচিত ছিলPATH। ব্যাশে একটি বিজোড়তা রয়েছে যা এটি~যাইহোক প্রসারিত করেPATH, তাই দুটি ভুল একটি সঠিক, ধরণের তৈরি করে।