Hal-hal sederhana
PATH=$PATH:~/opt/bin
atau
PATH=~/opt/bin:$PATH
tergantung pada apakah Anda ingin menambahkan ~/opt/bin
di akhir (akan dicari setelah semua direktori lain, jika ada program dengan nama yang sama di beberapa direktori) atau di awal (harus dicari sebelum semua direktori lain).
Anda dapat menambahkan beberapa entri sekaligus. PATH=$PATH:~/opt/bin:~/opt/node/bin
atau variasi pada pekerjaan pemesanan baik-baik saja. Jangan letakkan export
di awal baris karena memiliki komplikasi tambahan (lihat di bawah "Catatan tentang cangkang selain bash").
Jika Anda PATH
dibuat oleh banyak komponen berbeda, Anda mungkin berakhir dengan entri duplikat. Lihat Bagaimana cara menambahkan direktori home path untuk ditemukan oleh Unix perintah mana? dan Hapus entri $ PATH duplikat dengan perintah awk untuk menghindari menambahkan duplikat atau menghapusnya.
Beberapa distribusi secara otomatis dimasukkan ke ~/bin
dalam PATH Anda jika ada.
Di mana harus meletakkannya
Menempatkan baris untuk memodifikasi PATH
di ~/.profile
, atau ~/.bash_profile
jika itu yang Anda miliki.
Catatan yang ~/.bash_rc
tidak dibaca oleh program apa pun, dan ~/.bashrc
merupakan file konfigurasi instance interaktif bash. Anda seharusnya tidak mendefinisikan variabel lingkungan di ~/.bashrc
. Tempat yang tepat untuk mendefinisikan variabel lingkungan seperti PATH
adalah ~/.profile
(atau ~/.bash_profile
jika Anda tidak peduli dengan shell selain bash). Lihat Apa perbedaan antara mereka dan yang mana yang harus saya gunakan?
Jangan letakkan di /etc/environment
atau ~/.pam_environment
: ini bukan file shell, Anda tidak dapat menggunakan substitusi seperti $PATH
di sana. Dalam file-file ini, Anda hanya bisa menimpa variabel, bukan menambahkannya.
Potensi komplikasi dalam beberapa skrip sistem
Anda tidak perlu export
jika variabel sudah ada di lingkungan: setiap perubahan nilai variabel tercermin di lingkungan. PATH
Pretty hampir selalu ada di lingkungan; semua sistem unix mengaturnya sangat awal (biasanya pada proses pertama, sebenarnya).
Pada saat login, Anda dapat mengandalkan PATH
yang sudah ada di lingkungan, dan sudah mengandung beberapa direktori sistem. Jika Anda menulis skrip yang dapat dijalankan lebih awal saat menyiapkan beberapa jenis lingkungan virtual, Anda mungkin perlu memastikan bahwa PATH
itu tidak kosong dan diekspor: jika PATH
masih tidak disetel, maka sesuatu seperti PATH=$PATH:/some/directory
akan diatur PATH
ke :/some/directory
, dan komponen kosong di awal berarti direktori saat ini (seperti .:/some/directory
).
if [ -z "${PATH-}" ]; then export PATH=/usr/local/bin:/usr/bin:/bin; fi
Catatan tentang kerang selain bash
Di bash, ksh dan zsh, export
adalah sintaks khusus, dan kedua PATH=~/opt/bin:$PATH
dan export PATH=~/opt/bin:$PATH
melakukan hal yang benar bahkan. Dalam shell Bourne / POSIX-style lainnya seperti dash (yang ada /bin/sh
di banyak sistem), export
diurai sebagai perintah biasa, yang menyiratkan dua perbedaan:
Jadi di shell seperti dash, export PATH=~/opt/bin:$PATH
set PATH
ke string literal ~/opt/bin/:
diikuti oleh nilai PATH
hingga ruang pertama.
PATH=~/opt/bin:$PATH
(tugas kosong) tidak memerlukan penawaran dan melakukan hal yang benar. Jika Anda ingin menggunakan export
skrip portabel, Anda harus menulis export PATH="$HOME/opt/bin:$PATH"
, atau PATH=~/opt/bin:$PATH; export PATH
(atau PATH=$HOME/opt/bin:$PATH; export PATH
agar mudah dibawa ke shell Bourne yang tidak menerima export var=value
dan tidak melakukan ekspansi tilde).
¹ Ini tidak benar pada cangkang Bourne (seperti pada cangkang Bourne yang sebenarnya, bukan cangkang bergaya POSIX modern), tetapi Anda sangat tidak mungkin menemukan cangkang-cangkang tua seperti itu belakangan ini.