Quando você executa um comando, o shell pesquisa a variável PATH
(ou alguma tabela de hash, dependendo do shell # ) onde encontrar o executável. Mas geralmente o diretório de trabalho atual ( .
) não está incluído. Então, você precisa dizer ao shell onde encontrar o seu script, prefixando ./
como explicado por Floris.
O propósito dessa configuração padrão é que você seja salvo da execução acidental de um script (no diretório atual), que é denominado, e. rm
em vez do comando esperado em /bin
. Isso é especialmente crucial para o root, porque o script local pode se comportar completamente diferente como você espera!
# Eu escrevi um pouco mais sobre tabelas de hash em esta resposta .