/bin/bash^M: interpretador inválido: Arquivo ou diretório inexistente
ou
/bin/sh^M: interpretador inválido: Arquivo ou diretório inexistente
O problema é que o arquivo tem caracteres de quebra de linha do Wndows. O Windows usa 2 caracteres para quebra de linha; o Linux apenas 1. Assim, esse caracter fica sobrando. Para solucionar isto, basta chamar
dos2unix nome-do-arquivo.sh
Caso não tenha o dos2unix instalado, digite (funcionou no Ubuntu)
apt-get install tofrodos