Heim > Artikel > Betrieb und Instandhaltung > Was tun, wenn Linux das sh-Skript nicht ausführen kann?
Es gibt drei Lösungen: 1. Verwenden Sie den Befehl „dos2unix filename“, um die angegebene Datei direkt in das Unix-Format zu konvertieren. 2. Verwenden Sie den Befehl „sed“, um das Endzeichen direkt durch das Unix-Format zu ersetzen. Die Syntax lautet „sed -“. i „s/ r//“ Dateiname“ oder „sed -i „s/^M//“ Dateiname“; 3. Nachdem Sie vi zum Öffnen der Datei verwendet haben, verwenden Sie „set ff=unix“, um die Datei auf Unix zu setzen. und verwenden Sie „:wq“, um es zu speichern.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
Ein solcher Fehler wird beim Ausführen des Shell-Skripts angezeigt. Der Hauptgrund dafür ist, dass die Shell-Skriptdatei im DOS-Format vorliegt, d. h. das Ende jeder Zeile ist gekennzeichnet durch rn, während das Ende der Zeile der Unix-Formatdatei mit n endet.
Mehrere Möglichkeiten, um zu überprüfen, ob eine Skriptdatei im DOS- oder Unix-Format vorliegt.
(1) cat -A Dateiname Aus den angezeigten Ergebnissen kann geschlossen werden, dass die Dateizeile, die im DOS-Format endet, ^M ist, die Dateizeile, die im Unix-Format endet, ist, die Dateizeile, die im Unix-Format endet, und die Dateizeile, die im Unix-Format endet.
(2) od -t x1 Dateiname Wenn Sie im Ausgabeinhalt die Zeichen 0d 0a sehen, liegt die Datei im DOS-Format vor. Wenn nur 0a vorhanden ist, liegt sie im Unix-Format vor.
(3) Öffnen Sie die Datei mit dem Dateinamen vi und führen Sie Folgendes aus: set ff. Wenn die Datei im DOS-Format vorliegt, wird sie als Dateiformat = DOS angezeigt. Wenn sie unxi ist, wird sie als Dateiformat = Unix angezeigt.
Lösung:
(1) Verwenden Sie den Linux-Befehl dos2unix filename, um die Datei direkt in das Unix-Format zu konvertieren
dos2unix filename
(2) Verwenden Sie den sed-Befehl sed -i "s/r//" filename oder sed -i „s/^M//“ Dateiname ersetzt direkt das Endzeichen durch Unix-Format
sed -i “s/\r//” filename sed -i “s/^M//” filename
(3) vi Dateiname öffnet die Datei, führen Sie aus: set ff=unix Setzen Sie die Datei auf Unix, führen Sie dann aus: wq, speichern Sie sie unter Unix format
set ff=unix
Empfohlenes Lernen: Linux-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWas tun, wenn Linux das sh-Skript nicht ausführen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!