O Demure já respondeu à sua pergunta específica. No entanto, esta é uma questão zsh
e cerca de 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 automaticamente mantidas em sincronia. Então, qual é o benefício de usar uma matriz?
- O último você pode declarar via
typeset -U path
para "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ê atribua sucessivamente seu ~/.zshrc
(porque você o modificou ou o que quer que seja) e não o sobrecarregue com os mesmos valores repetidas vezes.
- Você pode usar
path+=(/new/path)
para adicionar um novo diretório ao seu PATH. Para remover um elemento, você tem que usar alguns truques. link ou link
- Você pode percorrer facilmente os elementos no PATH por meio de
for i ($path) { print $i # or do something else }
Por fim, aqui está um trecho da minha configuração:
typeset -U path
path=(/new/path1
/new/path2
$path)
export PATH