Comando 'which' não mostrando saída para locais PATH personalizados

3

Cenário

Eu tenho um projeto ProductivityScripts no GitHub, e quando eu instalo o Linux (Debian 9), eu adiciono esta pasta a PATH para facilidade de uso.

Ou seja, adiciono a seguinte linha a ~/.bashrc :

export PATH="~/Dev/ProductivityScripts:$PATH"

Funciona. Agora posso executar scripts de dentro dessa pasta pelo nome de qualquer lugar.

alec@my_host:~$ capsalt
SUCCESS!

No entanto, se eu digitar which capsalt , não receberei saída.

which ing a maioria das coisas funciona.

alec@my_host:~$ which git
/usr/bin/git

Pergunta

O which também não deve rastrear scripts disponíveis em locais adicionados ao PATH manualmente? Ou há outra razão pela qual isso não está funcionando?

Desculpe se alguma informação está faltando para responder adequadamente a essa pergunta. Eu vou esclarecer tudo o que for necessário.

    
por Alec 06.02.2018 / 12:37

1 resposta

5

Isso é mais provável porque ~ não atua como uma variável entre aspas duplas em combinação com which não fazendo sua própria expansão do til.

Use

PATH="$HOME/Dev/ProductivityScripts:$PATH"

em vez disso. HOME é uma variável de ambiente e se expande normalmente entre aspas duplas. Observe também que, como PATH já está exportado, não precisa ser exportado novamente (por meio dele, não faz mal).

Mais informações sobre o til: Por que o til não é (~) expande as aspas duplas internas?

Veja também Por que não usar "which"? O que usar então?

    
por 06.02.2018 / 13:07