¿Es posible que el script esté utilizando dos líneas nuevas?
Intente ejecutar dos2unix en él.
La primera línea, #!/bin/bash , le dice a Linux dónde encontrar el intérprete. El script también debe ser ejecutable con chmod +x script.sh , lo que parece que hiciste.
Es muy probable que haya creado este archivo con un editor de Windows, que colocará un <cr><lf> al final de cada línea. Este es el estándar bajo dos / windows. OS X colocará un <cr> al final de cada línea. Sin embargo, bajo Unix/Linux, el estándar es simplemente poner un <lf> al final de la línea.
Linux ahora está buscando un archivo llamado /bin/bash<cr> para interpretar el archivo, donde <cr> es un carácter de retorno de carro, que es un carácter de archivo válido en Linux. Tal archivo no existe. De ahí el error.
<cr> extra . Una herramienta que suele funcionar cuando se edita el archivo en Windows es dos2unix .