Você leu esse comentário incorretamente.
Em shells ao estilo Bourne, como bash e zsh, o comando set é uma construção que faz duas coisas:
- define opções de shell, por exemplo
set -xativa a opçãoxtrace(rastreamentos de depuração de impressão); - quando chamado com argumentos não opcionais, define os parâmetros posicionais (
$1,$2,…, acessados coletivamente como"$@"). - Como uma exceção, se a opção
-Aou+Afor aprovada,setserá atribuído à matriz especificada em vez de aos parâmetros posicionais.
O comando set env $PATH define os parâmetros posicionais para uma lista de dois: env e o valor da variável PATH . Isso não é útil.
As chamadas para set com argumentos não opcionais são úteis somente dentro de funções e scripts, não em .zshrc . Embora você possa ter chamadas para set com opções, as opções mais úteis são definidas em setopt .
.inputrc é um arquivo de configuração para o bash e alguns outros programas que usam a biblioteca readline . Ele contém principalmente atalhos de teclado e algumas configurações de opção do formulário set SETTING VALUE (mas não há nenhuma configuração chamada env ). Essas opções estão relacionadas à edição da linha de comando. Zsh não usa readline, então .inputrc não é relevante para zsh.
Eu não sei o que você estava tentando fazer com a linha set env $PATH . Se você quiser exportar o PATH para o ambiente, a sintaxe será export PATH ; no entanto:
-
PATHjá foi exportado, não é necessário chamarexportnovamente, mesmo que você modifique o valor (a exportação de uma variável de ambiente modificada era necessária apenas no shell Bourne antigo). - Você não deve modificar as variáveis de ambiente em
.zshrc, pois esse arquivo é lido por todos os shells interativos. Uma variável definida em.zshrcsubstituiria qualquer coisa definida pelo programa de chamada e afetaria apenas os programas iniciados por meio desse shell. O local certo para definir suas variáveis de ambiente é em~/.profile,~/.zprofile,~/.pam_environmentou outros arquivos lidos no início de sua sessão. Veja Existe um arquivo equivalente ".bashrc" lido por todos os shells? e as postagens vinculadas.
Se você quiser alterar o caminho, é necessário atribuir a ele:
PATH=/completely/new:/value/of/PATH
PATH=/directory/to/add/at/the/beginning:$PATH
PATH=$PATH:/directory/to/add/at/the/end
Zsh (como (t)csh de onde foi copiado) fornece uma variável chamada path (todas em minúsculas), que é uma matriz contendo a mesma lista de diretórios que PATH . Qualquer atualização para PATH afeta automaticamente path e vice-versa. Então, ao invés de manipular PATH , você pode fazer coisas como
path=(/completely/new /value/of/PATH)
path=(/directory/to/add/at/the/beginning $path)
path+=/directory/to/add/at/the/end
path+=(/one/more /and/another)