Zsh'de PATH'ime bir dizin eklemeniz için kolay bir yol var mı? (veya daha genel olarak herhangi bir ortam değişkeni). Denedim:
PATH+=/my/directory
... ama bu iki kez yapılırsa, iki kez eklenir.
Zsh'de PATH'ime bir dizin eklemeniz için kolay bir yol var mı? (veya daha genel olarak herhangi bir ortam değişkeni). Denedim:
PATH+=/my/directory
... ama bu iki kez yapılırsa, iki kez eklenir.
Yanıtlar:
In diziye zsh
$PATH
bağlıdır (bkz. typeset -T
) $path
. Bu diziyi aşağıdakilerle benzersiz değerlere sahip olmaya zorlayabilirsiniz :
typeset -U path
Ardından, yolu şu yolla ekleyin:
path+=(~/foo)
Zaten oradaysa endişelenmeden.
Önden eklemek için şunları yapın:
path=(~/foo "$path[@]")
veya:
path[1,0]=~/foo
eğer ~/foo
zaten varsa , $path
onu öne taşıyacak.
typeset -Ug path
? Ben kullandığınızda typeset -U path
benim de ~/.zshrc
dosyaya, hep zshrc çalışırken hiçbir şey yolunda olma konusunda bir hata geri almak
-g
kapsamı kısıtlamaktan kaçınmaktır, ancak ~/.zshrc
kapsam zaten globaldir. Ayrıca, zsh
boş bir şikayet hakkında hiç görmedim $PATH
(tabii ki komut bulunamadı hataları hariç).
Bunun gibi bir şey yapmanız gerekecek:
if echo $PATH | grep :newpath: ; then doIfPresent; else doIfMissing; fi
Bu yalnızca newpath
bu iki ':' ile sınırlandırılmışsa , başlangıçta veya bitiminde benzer şekilde düşünülmesi gerekir.
Urgh.
echo "$PATH"
: her zaman değişken ikamelerin etrafına çift tırnak koyun ). case ":$PATH:" in *:/new/directory:*) :;; *) PATH=$PATH:/new/directory;; esac