Obwohl nicht direkt relevant für diesen speziellen Thread; Wenn eine Datei von einem Windows-System stammt, kann am Ende der Zeile ein CR/LF stehen. Dies würde alle Zeilen in der Datei betreffen, einschließlich der anfänglichen Ausführungszeile, und wäre nicht sichtbar, wenn Sie die Datei anzeigen.
$ ./test.sh
-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory
Um dies zu sehen, könnten Sie die Datei mit cat -A versehen:$ cat -A ./test.sh#!/bin/bash^M$echo "me"^M$
Verwenden Sie zum Entfernen dos2unix.
Das kann passieren, wenn Sie das Dateisystem mit der Option "noexec" gemountet haben. Sie sollten es entfernen.
Skript muss ausführbar sein. Verwenden Sie dies:
chmod +x <script-name>
Versuchen Sie es mit
ls -la
um die tatsächlichen Rechte und das Eigentum an der Datei anzuzeigen. Um zu sehen, ob der chmod-Befehl tatsächlich funktioniert hat. Vielleicht möchten Sie den Eigentümer zusammen mit dem Mod der Dateiprüfung ändern:http://www.tuxfiles.org/linuxhelp/fileowner.html