Dette spørgsmål har allerede svar her :
Kommentarer
- Relateret: shebang-linjen fungerer ikke med cr-lf
- … da du bruger
vi
, du kan skifte mellem linieendelser ved hjælp af:set ff=unix
og:set ff=dos
- der er en mange spørgsmål om den CR, hvis du googler til
^M
Hvad er^M
og hvordan slipper jeg af det? , Unix-script tilføjes ^ M i slutningen af hver linje , -bash: ./my_script: / bin / bash ^ M. : dårlig tolk: Ingen sådan fil eller katalog … - Jeg ' m stemmer dette ned, fordi det ' en duplikat som @phuciv viser.
- Med hensyn til din nylige redigering af dette gamle spørgsmål: Det andet spørgsmål markeret som en duplikat indeholder svar, der ikke bruger
dos2unix
.
Svar
Du ser ud til at have linjeafslutninger i Windows-stil (CRLF, ^ M ^ J ) i stedet for linieendelser i unix-stil (LF, ^ J). Prøv dos2unix
dos2unix delete_7gg.sh
og kør som normalt
Fra mand:
dos2unix – DOS / MAC til UNIX tekstfilformatkonverter
tr -d '\r' < input > output
.