Lo script potrebbe utilizzare Dos newline?
Prova a eseguire dos2unix su di esso.
La prima riga, #!/bin/bash , dice a Linux dove trovare l'interprete. Lo script dovrebbe anche essere eseguibile con chmod +x script.sh , cosa che sembra tu abbia fatto.
È molto probabile che tu abbia creato questo file con un editor di Windows, che inserirà un <cr><lf> alla fine di ogni riga. Questo è lo standard sotto dos / windows. OS X inserirà un <cr> alla fine di ogni riga. Tuttavia, sotto Unix/Linux, lo standard è semplicemente inserire un <lf> alla fine della riga.
Linux ora sta cercando un file chiamato /bin/bash<cr> per interpretare il file, dove <cr> è un carattere di ritorno a capo, che è un carattere di file valido sotto Linux. Tale file non esiste. Da qui l'errore.
Soluzione: Modifica il file con un editor su Linux ed elimina il <cr> in più . Uno strumento che di solito funziona quando il file viene modificato su Windows è dos2unix .