İç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.
PATH
Benzer 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 ( export
bir =
karakter içeren bir argümana sahip olan yerleşik çağrıdır ).
Burada, PATH
zaten dışa aktarıldığından dışa aktarmanıza gerek yoktur . export
Bir 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 export
sayılmaz), sağ tarafın çevresinde çift tırnaklara ihtiyacınız yoktur, bu nedenle boşluklar PATH=$PATH:~/Unix/homebrew/bin
olsa bile güvenlidir $PATH
.
which
burada 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.