Sebbene non direttamente pertinente a questo particolare thread; se un file proviene da un sistema Windows potrebbe esserci un CR/LF alla fine della riga. Ciò influenzerebbe tutte le righe del file, inclusa la riga di esecuzione iniziale, e non sarebbe visibile se stai visualizzando il file.
$ ./test.sh
-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory
Per vederlo, puoi cat -A il file:$ cat -A ./test.sh#!/bin/bash^M$echo "me"^M$
Per rimuovere, usa dos2unix.
Ciò può accadere se hai montato il file system con l'opzione "noexec". Dovresti rimuoverlo.
Lo script deve essere eseguibile. Usa questo:
chmod +x <script-name>
Prova
ls -la
per vedere i diritti effettivi e la proprietà del file. Per vedere se il comando chmod ha effettivamente funzionato. Potresti voler cambiare la proprietà insieme alla mod del controllo del file:http://www.tuxfiles.org/linuxhelp/fileowner.html