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 $PATHbağ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 ~/foozaten varsa , $pathonu öne taşıyacak.
typeset -Ug path? Ben kullandığınızda typeset -U pathbenim de ~/.zshrcdosyaya, hep zshrc çalışırken hiçbir şey yolunda olma konusunda bir hata geri almak
-gkapsamı kısıtlamaktan kaçınmaktır, ancak ~/.zshrckapsam zaten globaldir. Ayrıca, zshboş 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