-
O nome do executável é importante. Se o arquivo tiver o nome
foo.sh, a execução defoonão funcionará, a menos que exista algum outro executável chamadofoo. Ao contrário do Windows, o Unix não faz extensões de arquivos implícitas . -
Se o seguinte funciona:
./foo.shMas isso não acontece:
foo.shIsso significa que o arquivo está em seu diretório atual e seu diretório atual não está em seu PATH. Para sua proteção, se você não fornecer explicitamente o caminho para um comando, o shell procurará apenas o comando entre os arquivos que estão em seu PATH.
-
Espaços são importantes. O seguinte pode funcionar:
./foo.shMas isso (tirado da primeira versão desta pergunta) certamente não funcionará:
./ foo.shCom um espaço entre
./efoo.sh, o shell pensará que você deseja executar o diretório atual comfoo.shcomo argumento. Isso gerará uma mensagem de erro.