Alguns dias atrás, fiquei satisfeito com a minha resposta. Eu também sabia que o which
comando não é usado para testar se existe um comando. Agora não estou tão satisfeito com minha resposta, e me refiro a essa ótima resposta .
Com um which
comando simples :
which foo.sh
Ou um type
comando:
type foo.sh
E você pode influenciar isso com a ordem dos caminhos no seu $PATH
ou através de um caminho absoluto quando o script iniciar, EG
/home/user/scripts/foo.sh
Exemplo
Se PATH estiver definido como abaixo
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
E você inicia um script ou qualquer outra coisa que esteja dentro /usr/local/bin
e dentro /usr/bin
do script /usr/local/bin
como uma prioridade mais alta.
bash
ezsh
também há otype
embutido; em vez dezsh
which
, de forma diferente a partir debash
, é um embutido (e não/usr/bin/which
)