Baris itu di Anda .profile
harus menjadi salah satu
export PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH=$PATH:$HOME/Unix/homebrew/bin
PATH=$PATH:~/Unix/homebrew/bin
The ~
karakter hanya diperluas ke direktori home Anda ketika itu karakter pertama dari sebuah kata dan itu kuotasi. Dalam apa yang Anda tulis, ~
ada di antara tanda kutip ganda dan karenanya tidak diperluas. Bahkan jika Anda menulis export "PATH=$PATH:"~/Unix/homebrew/bin
, ~
itu tidak akan diperluas karena itu bukan pada awal kata shell.
Ada dispensasi khusus, yang dimaksudkan untuk menulis nilai untuk PATH
dan variabel sejenis. Jika ~
tepat setelah tanda sama dengan yang menandai tugas, atau jika ~
hanya setelah tanda :
di sisi kanan tugas, maka itu diperluas. Hanya tugas sederhana yang memiliki dispensasi ini, export PATH=…
tidak masuk hitungan (ini adalah panggilan ke export
builtin, yang kebetulan memiliki argumen yang berisi =
karakter).
Di sini, Anda tidak perlu mengekspor PATH
karena sudah diekspor. Anda tidak perlu menelepon export
saat Anda mengubah nilai variabel (kecuali di shell Bourne lama yang tidak akan Anda temukan di OSX atau Linux). Juga, dalam tugas (sekali lagi, export
tidak masuk hitungan), Anda tidak perlu tanda kutip ganda di sisi kanan, jadi PATH=$PATH:~/Unix/homebrew/bin
aman bahkan jika $PATH
berisi spasi.
which
tidak bersalah di sini; yang~
seharusnya diperluas dalam definisiPATH
. Ada keanehan di bash bahwa itu~
tetap memperluasPATH
, jadi dua kesalahan membuat hak, semacam.