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
.