$PATH vs. $yol
Nedenini hatırlayamıyorum, ancak uzun zaman önce, bir nedenden dolayı bu değişkenlerin her ikisini de ayarlamam gerektiğini buldum. Bash'de hiçbir soruna neden olmadı, ama şimdi zsh'de,
export PATH=~/bin:/opt/local/bin:/opt/local/sbin:$PATH export path=$PATH
(.bashrc'de kullandığım şey) başlatmamda
/Users/…/.zshenv:export:7: path: inconsistent type for assignment
"Tür" ile ne demek istiyorlar ve $ path ne için kullanılıyor?
Yanıtlar
'Tür'den bahseden hata, dize veya dizi gibi değişkenin veri türünü ifade eder.
$PATHbir dizedir, $pathbir dizidir. Türler eşleşmediğinden, bir dizi içerecek şekilde yazılmış bir değişkene değişken veya değişmez bir dize atayamazsınız.
İki değişken arasındaki farkın ne olduğuna gelince: aynı klasör listesini, ancak farklı formatlarda temsil etmeleri amaçlanmıştır. $PATHiçeren /path/to/one:/path/to/two, $pathbirinci öğenin olduğu /path/to/oneve ikinci öğenin olduğu anlamına gelir /path/to/two.
İki değişkeni yönetmenize gerek yoktur (ve türler eşleşmediği için birini diğerine atamak işe yaramaz) - kabuk bunu sizin için halletmelidir. Sadece $PATHdizeye ekleyin ve eklediğiniz yolun bir öğesi olarak varolması gerekir $path.
Bu yalnızca zshmiras alınan için geçerlidir *csh. İki değişken arasındaki 'bağlamayı' ile görebilirsiniz typeset -p PATH.
$path dizi olmak gerçekten kullanışlıdır:
yolun eklenmesi ve değiştirilmesi, dize manipülasyonundan ziyade ekleme gibi dizi işlemleriyle yapılabilir (ortada bir yerde düzenleme yapılması durumunda bölme ve birleştirme gerektirir).
döngü
for i ($path) { … }, doğru bölünmüş karakterin ayarıyla uğraşmaya gerek kalmadan gerçekleşir.
PATH bir skaler değerdir - iki nokta üst üste ile ayrılmış sürekli bir arama yolları dizisidir ve yol bir arama yolları dizisidir. zshhem yolu hem de PATH'i senkronize edecek. Bunu yapmanıza gerek yok.