O Demure já respondeu sua pergunta específica. No entanto, esta é uma zsh
pergunta e sobre PATH
. Então, aqui está outro ponto: Além da variável padrão $PATH
, há também $path
, que é uma matriz. Aqui você vê a diferença (dois pontos ou não ...):
$ print $PATH
/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
$print $path
/bin /usr/bin /usr/local/bin /usr/X11R6/bin
Ambas as variantes são mantidas automaticamente em sincronia. Então, qual é o benefício de usar uma matriz?
- Você pode declarar via
typeset -U path
"manter apenas a primeira ocorrência de cada valor duplicado" (de man zshbuiltins
). Isso significa que isso mantém seu caminho limpo, mesmo que você o adquira sucessivamente ~/.zshrc
(porque você o alterou ou o que seja) e não o encha com os mesmos valores repetidamente.
- Você pode usar
path+=(/new/path)
para adicionar um novo diretório ao seu PATH. Para remover um elemento, você precisa usar alguns truques, consulte, por exemplo, /programming//q/3435355/2037712 ou http://www.zsh.org/mla/users//2005/msg01132.html
- Você pode facilmente percorrer os elementos no PATH via
for i ($path) { print $i # or do something else }
Finalmente, aqui está um trecho da minha configuração:
typeset -U path
path=(/new/path1
/new/path2
$path)
export PATH
.zshenv
.