Estou usando o zsh e estou tentando adicionar uma nova entrada ( /home/david/pear/bin
) à PATH
variável, mas não sei como.
O que mais me confunde é que não há uma única referência a uma PATH
variável no meu ~/.zshrc
arquivo, mas echo $PATH
retornos:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Portanto, uma PATH
variável está sendo definida em algum lugar.
PATH="/home/david/pear/bin:/usr/bin:etc"
paraPATH=/home/david/pear/bin:/usr/bin:etc
que ele permanecesse no zshrc.PATH
do processo pai que o iniciou e, em seguida, quando é executado.zshrc
(.bashrc
ou qualquer outra coisa), é isso que permite adicionar itens adicionais a esse caminho.Na verdade, o uso do ZSH permite o uso de mapeamento especial de variáveis de ambiente. Então você pode simplesmente fazer:
Para mim, esse é um recurso muito interessante que pode ser propagado para outras variáveis. Exemplo:
fonte
~/.zshrc
é originada depois.profile
e substitui tudo.profile
. Demorei um pouco puxando meu cabelo para descobrir.-x
e deixar apenas valores exclusivos em uma variável com-U
, dois pontos é assumido por padrão, para que possa ser:typeset -TUx PATH path
path=(...)
(sem referência$path
ou$PATH
dentro) atribui, acrescentapath=(... $path)
epath+(...)
acrescenta.Você pode anexar ao seu
PATH
de uma maneira mínima. Não há necessidade de parênteses, a menos que você esteja anexando mais de um elemento. Também geralmente não precisa de aspas. Portanto , a maneira simples e curta de acrescentar é:Uso comum
Em seguida, o padrão comum para testar um novo script / executável se torna:
Essa sintaxe em minúscula está sendo usada
path
como uma matriz , mas também afeta seu equivalente de parceiro em maiúsculasPATH
(ao qual está "ligado" viatypeset
).(Observe que não
:
é necessário / desejado como separador .)Petiscos relacionados
Tratar
path
dessa maneira (como uma matriz) também significa: não é necessário fazer arehash
para obter os comandos recém-localizados.Veja também
vared path
como uma maneira dinâmica de editarpath
e outras coisas.Você pode estar interessado apenas
path
nessa questão, mas, como estamos falando de exportações e matrizes, observe que as matrizes geralmente não podem ser exportadas.Você pode até impedir
PATH
a entrada de entradas duplicadas (consulte isto e isto ):fonte
path+='my/path' # for fun
. É óbvio se você tiver espaços, mas não tanto se tiver comentários.path
.:
É necessário um precedente paraPATH
, da seguinte maneira em .zshrcPATH+=:/Users/path/to/my/folder
um forro, sem abrir
~/.zshrc
arquivoou
Para ver o efeito, faça
source ~/.zshrc
na mesma guia ou abra uma nova guiafonte
Caminho adicionado para ~ / .zshrc
sudo vi ~/.zshrc
adicionar novo caminho
Atualizar ~ / .zshrc
Salvar ~ / .zshrc
source ~/.zshrc
Verificar PATH
echo $PATH
fonte
Bash
caminho.OPÇÃO 1: adicione esta linha a ~ / .zshrc:
Depois disso, você precisa executar
source ~/.zshrc
para que suas alterações tenham efeito OU feche esta janela e abra uma novaOPÇÃO 2: execute-o dentro do console do terminal para adicionar esse caminho apenas à sessão atual da janela do terminal. Quando você fecha a janela / sessão, ela será perdida.
fonte