zsh config - para exportar ou não exportar?

17

Ao definir variáveis no meu ~/.zshrc , posso usar export

export PATH=/some/path

ou não

PATH=/some/path

Como estes diferem e quais devo usar?

    
por jordelver 23.05.2013 / 00:53

2 respostas

19

Se você quiser que os programas sejam executados a partir do zsh para ver o var, exporte-o.
Para o caminho, você provavelmente deseja exportar.
Em vez de export PATH=/some/path , você provavelmente deseja export PATH="$PATH:/some/path" , a menos que pretenda limpar completamente o caminho predefinido do sistema.

    
por 23.05.2013 / 01:44
16

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
    
por 23.05.2013 / 11:09

Tags