Até onde eu sei, usar ~/go/bin
como um componente $ PATH depende de uma extensão fora do padrão (talvez GNU?).
-
Sempre que seu shell (bash) pesquisar por binários, ele expandirá o prefixo
~/
para o caminho do diretório inicial. Você pode ver quetype
(que é construído no shell) encontra o programa Go muito bem. -
Enquanto isso, o comando
/usr/bin/which
(que é fornecido pelo macOS e não faz parte do shell) não executa essa expansão, porque isso não foi especificado em The Open Group descrição oficial de como $ PATH deve funcionar .
Em outras palavras, o prefixo ~/
faz parte da linguagem do shell, mas não faz parte da sintaxe geral do caminho do sistema operacional. Em todos os outros lugares, incluindo $ PATH (que não se limita a shells!), Significa simplesmente um diretório chamado ~
.
Ao definir $ PATH, você precisa garantir que os caminhos sejam expandidos no momento da atribuição:
PATH=$PATH:~/go/bin
PATH=$PATH:$HOME/go/bin
PATH="$PATH:$HOME/go/bin"
Este não funcionará:
PATH="$PATH:~/go/bin"