Por que um arquivo que contém comandos shell válidos ainda pode falhar quando é executado como ./runme.sh?
./runme.sh
O Linux só pode executar arquivos binários e nunca scripts baseados em texto.
A invocação direta exige permissão de escrita, mas nunca permissão de execução.
A permissão de leitura concede automaticamente a permissão de execução depois que o arquivo é aberto uma vez.
O arquivo também precisa ter a permissão de execução adequada para ser invocado diretamente.