Dette spørsmålet har allerede svar her :
Kommentarer
- Relatert: shebang-linjen fungerer ikke med cr-lf
- … siden du bruker
vi
, du kan bytte mellom linjeendinger ved hjelp av:set ff=unix
og:set ff=dos
- det er en mange spørsmål om CR hvis du googler for
^M
Hva er^M
og hvordan blir jeg kvitt det? , Unix-skript legger til ^ M på slutten av hver linje , -bash: ./my_script: / bin / bash ^ M : dårlig tolk: Ingen slik fil eller katalog … - Jeg ' m stemmer dette ned fordi det ' et duplikat som @phuciv viser.
- Når det gjelder den siste redigeringen av dette gamle spørsmålet: Det andre spørsmålet som er merket som et duplikat inneholder svar som ikke bruker
dos2unix
.
Svar
Du ser ut til å ha linjeslutt i Windows-stil (CRLF, ^ M ^ J ) i stedet for linjeavslutninger i unix-stil (LF, ^ J). Prøv dos2unix
dos2unix delete_7gg.sh
og løp som vanlig
Fra mann:
dos2unix – DOS / MAC til UNIX tekstfilformatkonverterer
tr -d '\r' < input > output
.