İçindeki bu çizgi .profileşunlardan biri olmalı
export PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH=$PATH:$HOME/Unix/homebrew/bin
PATH=$PATH:~/Unix/homebrew/bin
~Bir kelimenin ilk karakteri olduğunda karakter yalnızca ana dizine genişletilir ve tırnak içine ediyor. Yazdıklarınızda, ~çift tırnak işaretleri arasındadır ve bu nedenle genişlemez. Yazmış olsanız bile export "PATH=$PATH:"~/Unix/homebrew/bin, ~genişletilmez çünkü kabuk kelimesinin başında değildir.
PATHBenzer değişkenler için değerler yazmayı amaçlayan özel bir dağıtım vardır . Eğer ~sadece eğer bir atama ya da işaretleri olduğunu eşittir işaretinden sonra ise ~sadece sonradır :bir atamanın sağ tarafında, daha sonra Genişletilmişse. Sadece düz ödevler bu dağıtımı içerir, export PATH=…sayılmaz ( exportbir =karakter içeren bir argümana sahip olan yerleşik çağrıdır ).
Burada, PATHzaten dışa aktarıldığından dışa aktarmanıza gerek yoktur . exportBir değişkenin değerini değiştirdiğinizde aramanız gerekmez (OSX veya Linux'ta bulamayacağınız eski Bourne kabukları hariç). Ayrıca, bir ödevde (yine exportsayılmaz), sağ tarafın çevresinde çift tırnaklara ihtiyacınız yoktur, bu nedenle boşluklar PATH=$PATH:~/Unix/homebrew/binolsa bile güvenlidir $PATH.
whichburada hatalı değildir;~tanımında genişletilmiş olması gerekirdiPATH. Bash'da~zaten genişleyen bir tuhaflık varPATH, bu yüzden iki yanlış bir tür doğru yapıyor.