Sejauh yang saya mengerti, cara biasa untuk menambahkan path ke PATH
variabel lingkungan adalah dengan menyatukan path yang dipisahkan oleh :
karakter.
Misalnya, jika saya ingin menambahkan tiga jalur ke sana /my/path/1
, /my/path/2
dan /my/path/3
, saya harus melakukannya sebagai berikut:
PATH=$PATH:/my/path/1:/my/path/2:/my/path/3
yang tidak mudah dibaca.
Apakah ada cara untuk mendefinisikan atau menambahkan path ke PATH
variabel menggunakan sintaksis multi-line ? Mungkin menggunakan array? Saya mencari sesuatu seperti ini:
PATH =
$PATH
/my/path/1
/my/path/2
/my/path/3
Jika ada solusi menarik yang spesifik untuk shell, saya mencari solusi di zsh.
sumber
paste
solusi?Sama sekali bukan solusi yang menarik, tetapi sangat portabel:
sumber
+=
untuk menghindari keharusan membangun kembali string sepenuhnya.Di zsh,
$path
adalah array:Catatan: keduanya
path
huruf kecil.sumber
Di zsh, jika Anda menambahkan direktori di ujung jalan:
Portable: Bagaimana cara menambahkan path ke PATH dengan benar?
Anda dapat menggunakan kualifikasi glob untuk mengecualikan entri yang tidak ada direktori atau tautan simbolis ke sana. Ini mungkin atau mungkin tidak diinginkan, tergantung pada apakah Anda mengharapkan direktori akan ditambahkan kemudian selama sesi (misalnya jika mereka berada di sistem file jarak jauh). Anda tidak dapat melakukannya dengan
path+=/my/path
sintaks karena sisi kanan berada dalam konteks string dan tidak mengalami globbing; Anda dapat melakukannya denganpath+=(/my/path)
karena setiap elemen array diperluas dalam konteks daftar.sumber