Diese Frage hat hier bereits Antworten :
Kommentare
- Verwandte Themen: Shebang-Zeile funktioniert nicht mit cr-lf
- … da Sie können Sie mit
:set ff=unix
und:set ff=dos
- zwischen Zeilenenden wechseln Viele Fragen zu dieser CR, wenn Sie nach
^M
suchen. Was ist^M
und wie werde ich es los? , Unix-Skript hängt ^ M am Ende jeder Zeile an , -bash: ./my_script: / bin / bash ^ M. : schlechter Interpreter: Keine solche Datei oder kein solches Verzeichnis … - Ich ' stimme ab, weil es ' ist ein Duplikat, wie @phuciv zeigt.
- Zu Ihrer letzten Bearbeitung dieser alten Frage: Die zweite als Duplikat gekennzeichnete Frage enthält Antworten, die nicht
dos2unix
.
Antwort
Sie scheinen Zeilenenden im Windows-Stil (CRLF, ^ M ^ J) zu haben ) anstelle von Zeilenenden im Unix-Stil (LF, ^ J). Versuchen Sie dos2unix
dos2unix delete_7gg.sh
und führen Sie es dann wie gewohnt aus.
Vom Mann:
dos2unix – Konverter für DOS / MAC zu UNIX-Textdateiformat
Kommentare
- Vielen Dank für die Antwort, aber ich habe das Skript in einem qnap qts 4.3.6 erstellt, das ich über ssh erreichen kann. Es sollte einfach Dateien löschen, die älter als sieben Tage sind. Ich kann ' dos2unix nicht installieren, da das System keinen Paketmanager hat. Ich habe nur erwartet, ein Skript zu erstellen und es in cron zu setzen. Aber ich ' erhalte stattdessen diesen Fehler.
- @Malkavian Ein anderer Weg:
tr -d '\r' < input > output
.