/bin/bash^M: bad interpreter: No such file or directory

Wenn ihr bei der Ausführung eines Scriptes die Meldung

/bin/bash^M: bad interpreter: No such file or directory

oder

/bin/sh^M: bad interpreter: No such file or directory

bekommt, liegt das daran, dass ihr das Script vermutlich auf einem Windows-PC (oder Mac) erstellt und dann auf den Linux Rechner kopiert habt.
Das Skript gibt an, dass es von einer Shell ausgeführt werden muss, die sich unter /bin/bash^M befindet. Es gibt keine solche Datei: sie heißt /bin/bash.

Das ^M ist ein Wagenrücklaufzeichen (carriage return). Linux verwendet das Zeilenvorschubzeichen, um das Ende einer Zeile zu markieren, während Windows die zweistellige Sequenz CR LF verwendet. Eure Datei hat Windows-Zeilenenden, womit Linux bei der Interpretation des Scripts nicht zurecht kommt.

Um das Script also ausführen zu können, müsste ihr das Windows Zeilenende durch ein Linux Zeilenende ersetzen.

Weg 1:
Folgenden Befehl ausführen:
sed -i -e ’s/\r$//‘ mein-script.sh

Weg 2:
Ihr verwendet das Tool dos2unix:
https://sourceforge.net/projects/dos2unix/
dos2unix includes utilities to convert text files with DOS or MAC line breaks to Unix line breaks and vice versa. It is an update of Benjamin Lin’s implementations.“

Weg 3:
In vim (oder vi) könnt ihr auch :set ff=unix benutzen und dann die Datei speichern, oder :set ff=dos, um die DOS-Formatierung wieder zu erhalten.
Also in vim öffnen, auf unix setzen und speichern:
:set ff=unix
:wq

Weg 4:
Ihr öffnet das Script in einem Editor wie gedit, wählt „Speichern als …“ und wählt da „Zeilenende: Unix/Linux“ aus.

Danach ist das Script wieder lauffähig.

Print Friendly, PDF & Email

Last updated by at .

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Dürfen wir Ihre Nutzung unserer Website zur Verbesserung unseres Angebots und Erfassung Ihrer Interessen auswerten? Dafür setzen wir Google Analytics ein. Weitere Informationen finden Sie im Impressum. Ihre Einwilligung ist freiwillig. Sie können diese jederzeit für die Zukunft widerrufen. Hier klicken um dich auszutragen.