$ /bin /bash^m: schlechter Interpreter: Keine solche Datei oder Verzeichnis
In diesem Tutorial werden wir uns untersuchen.SH -Datei in einer Linux -Umgebung. Der schlechte Dolmetscher ist ein anderer Name für diesen Fehler. Sie könnten glauben, dass dies eine Berechtigungsbeschränkung ist und versuchen. Das Skript gibt an, dass es mit der Shell "/bin/bash^m" ausgeführt wird. Es gibt keine solche Datei; Stattdessen wird "/bin/bash" verwendet. Der "^m" -Charakter steht für die Kutschenrendite.
Das Leitungs-Fütterungszeichen wird häufig unter Linux verwendet, um das Ende einer Linie anzuzeigen. Die Datei enthält Windows -Linienende -Marker, wodurch Linux verwirrt ist. Wie kann ich in einer Bash -Skriptdatei CR- oder LF -Codierungszeichen sehen? Sie können die Zeilenendzeichen auch als LFCR oder LFCR per Ansicht → Symbol anzeigen → Ende der Zeile anzeigen. Ein Beispiel für eine Datei mit CR- oder LF -Zeichen ist unten dargestellt:
Die oben genannten und unten stehenden Anzeigen sind im Basis -Notepad -Editor nicht verfügbar. Stattdessen müssen Sie Notepad ++ installieren, eine erweiterte Version von Notepad. So reparieren Sie den Fehler im Windows -Betriebssystem, öffnen Sie die Bash -Skriptdatei im Notepad ++ - Editor und wenden Sie sich anschließend über das Menü "Einstellungen. Schließen Sie das Fenster nach der Auswahl von UNIX/OSX als Format. Speichern und schließen Sie danach die Datei.
Präferenzen → Registerkarte "Neues Dokument/Standardverzeichnis → Einstellung → Einstellungen → Registerkarte" Neues Dokument/Standardverzeichnis "→ Neues Dokumentformat → Wählen Sie das neue Dokument -Format →
Verwenden des Stream -Editor -Befehls
In UNIX kontaktiert der SED-Befehl einen Linien-für-Linien-Editor und kann eine breite Palette von Dateiverfahren wie Scannen oder Suchen, Finden und Ersetzen, Einfügen und Löschen durchführen. Der SED-Befehl wird am häufigsten in UNIX- und Linux-ähnlichen Betriebssystemen zum Ersetzen oder Ersetzen und Ersetzen verwendet. Löschen Sie die CR -Zeichen, die nicht da sein sollen. Sie können (SED) den folgenden Befehl im Bild verwenden, um diese Aufgabe zu erfüllen:
Durch Verwendung von DOS2Unix -Dienstprogramm
DOS2Unix ist ein Programm, das DOS in UNIX umwandelt. So installieren Sie das DOS2Unix-Dienstprogramm, um das Shell-Skript für die UNIX-Linux-ähnlichen Betriebssysteme zu beheben, und führen Sie dann den unten angegebenen DOS2Unix-Befehl aus:
$ dos2unix Dateiname.Sch
Wenn Sie den nicht gefundenen Befehl nicht gefunden haben, installieren Sie zuerst das DOS2Unix -Dienstprogramm, indem Sie den folgenden Befehl aus einer Linux -Befehlszeilenschale ausführen:
$ sudo apt-get install DOS2Unix
Sie können den Befehl UNIX2DOS verwenden, um die Datei zurück in das DOS -Format zu konvertieren.
Wie kann ich in einer Bash -Skriptdatei Cr LF -Zeichen anzeigen?? Versuchsdatei, Datei -k und schließlich dos2unix -ih -Befehl wie im folgenden Bildschirm: Versuchsdatei, Datei -K und schließlich dos2unix -ih -Befehl wie im folgenden Bildschirm. Für die Linux/UNIX -Zeile „CR“ druckt sie einfach Text aus.
Sie können es auf dem macOS -Betriebssystem mit Homebrew wie folgt installieren:
$ Brew Install DOS2Unix
Führen Sie dann den Befehl unten aus, um die Datei im DOS -Format in das UNIX -Format zu konvertieren:
$ dos2unix Dateiname.Sch
Was ist der Zweck des Befehls dos2unix
DOS2Unix ist ein Dienstprogramm, das die DOS -Zeilenende CR (Wagenrückgabe) +LF (Zeilenfeed) in UNIX -Zeilencodierungen in Textdateien LF (Zeilen -Feed) übersetzt. Es kann auch zwischen UTF-16 und UTF-8-Zeichen konvertieren. Sie können von UNIX in DOS übersetzt, während Sie den Befehl UNIX2DOS verwenden. Erwartungsvoll wird dies das Problem lösen, das Sie hatten.
Durch die Verwendung von VIM -Editor
Wenn Sie nicht über das DOS2Unix -Dienstprogramm auf Ihrem Linux -Betriebssystem installiert sind, können Sie den VIM -Editor verwenden, um das Format Ihres Shell -Skripts in UNIX zu verwandeln. Verwenden Sie die folgende Anweisung, um die Datei in VIM -Editor zu öffnen:
vi Dateiname.Sch
ODER
Vim -Dateiname.Sch
Wenn Sie sich nicht im aktuellen Verzeichnis oder im Ordner befinden, in dem sich Ihr Skript in der Bash -Datei befindet, geben Sie den vollständigen Pfad des Verzeichnisses ein, wie ich es getan habe. Wenn Sie sich jedoch in demselben Verzeichnis oder Ordner befinden, können Sie den Befehl direkt wie oben angegeben ausführen. Vim ist eine progressive Form des VI -Editors. Sowohl VI- als auch VIM -Befehle erledigen die gleiche Arbeit. Führen Sie den Befehl darunter aus, um das Dateiformat in das UNIX -Betriebssystem zu ändern:
$: Setzen Sie FF = UNIX
Wenn Sie dann die folgenden Befehle verwenden, werden alle Änderungen gespeichert und schließen Sie die Datei im Editor, schreiben Sie die Datei und schließen Sie sie. Jetzt bist du fertig. Sie können das Format Ihres Shell -Skripts durch einen der zuvor beschriebenen Ansätze in Unix konvertieren. Wir hoffen, dass die oben genannten Informationen dazu beigetragen haben, Ihr Problem zu lösen.
$: WQ!
Abschluss
Hier geht es um die Verwendung einfacher Methoden zur Behebung des Problems „Bin/Bash^M: Bad Interpreter: Keine solche Datei oder Verzeichnis“. Alle hier verwendeten Beispiele sind einfach und einfach zu implementieren. Wir hoffen, dass es Ihnen gefällt und mehr daraus lernen.