Se dois diretórios diferentes na variável de ambiente PATH contiverem um binário com o mesmo nome (mas com comportamento ligeiramente diferente), existem especificações/garantias sobre qual deles será usado?
Na minha máquina (macOS Monterey, Darwin 21.2.0) observei (via which <binary name>
) que o binário é escolhido no primeiro diretório encontrado em PATH (lendo seu conteúdo da esquerda para a direita). Mas esse comportamento é padrão em todos os sistemas operacionais Linux/UNIX? ou seja, existe algum padrão que o aplique (por exemplo, POSIX)?
Contexto extra (para os curiosos) : estou escrevendo um projeto que possui um script que baixa uma versão personalizada de um binário padrão em uma pasta específica do projeto e depois invoca outro script que DEVE usar o binário personalizado em vez do normal. . Estou adicionando a pasta com o binário personalizado ao PATH antes de invocar o segundo script. Dado o que observei sobre como PATH é pesquisado em caso de colisões, estou definindo PATH como PATH=<my-custom-folder>:$PATH
em vez de PATH=$PATH:<my-custom-folder>
. Mas este projeto tem vários colaboradores e quero ter certeza de que todos executamos o mesmo binário. Se diferentes sistemas operacionais pesquisassem PATH de maneiras diferentes da minha, as coisas iriam quebrar.